天天看點

SSH學習之一 OpenSSH基本使用

         在linux系統中,openssh是目前最流行的遠端系統登入與檔案傳輸應用,也是傳統telenet、ftp和r系列等網絡應用的換代産品。其中,ssh(secure shell)可以替代telnet、rlogin和rsh,scp(secure copy)與sftp(secure ftp)能後替代ftp。

         openssh采用密鑰的方式對資料進行加密,確定資料傳輸的安全。在正式開始傳輸資料之前,雙方首先要交換密鑰,當收到對方的資料時,再利用密鑰和相應的程式對資料進行解密。這種加密的資料傳輸有助于防止非法使用者擷取資料資訊。

         openssh采用随機的方式生成公私密鑰。密鑰通常隻需生成一次,必要時也可以重新制作。

         當使用ssh指令登入到遠端系統時,openssh伺服器的sshd守護進行将會發送一個公鑰,openssh用戶端軟體ssh将會提示使用者确認是否接收發送的公鑰。同時,openssh用戶端也會向伺服器回傳一個密鑰,使openssh連接配接雙方的每個系統都擁有對方的密鑰,因而能夠解密對方經由加密鍊路發送的加密資料。

         openssh伺服器的公鑰與私玥均存儲在/etc/ssh目錄中。在openssh用戶端,使用者收到的所有公鑰,以及提供密鑰的openssh伺服器的ip位址均存儲在使用者主目錄下的~/.ssh/known_hosts檔案中(.ssh是一個隐藏目錄)。如果密鑰與ip位址不再比對,openssh将會認為某個環節出了問題。例如,重新安裝作業系統或者更新openssh都會導緻系統再次生成新的密鑰,惡意的網絡攻擊也會造成密鑰的變動。是以,當密鑰發生變化時,總是應當先了解密鑰發生變化的原因,以確定網絡通路期間的資料安全。

         在ubuntu中,openssh的用戶端作為一個基礎系統軟體會随這系統一起安裝,但openssh伺服器需要單獨安裝。安裝openssh-server伺服器軟體包,可以使用apt-get、aptitude或synaptic等軟體工具。

         $ sudo apt-get install openssh-server

         安裝之後,可以使用以下指令驗證openssh伺服器的sshd守護程序是否已開啟。

         $ pidof sshd

         在openssh中,ssh是一個重要的用戶端應用程式。利用ssh,可以采用加密的通信方式,登入到遠端系統,其文法格式如下:

         ssh [options] [-l login_name][user@]hostname [command]

         其中,”-llogin_name”選項用于指定使用者名,表示以哪一個使用者身份登入到遠端系統。如果不提供使用者名,則以目前使用者的身份登入到遠端系統。例如,下面指令形式表示以webgod使用者身份,采用預設的22端口,登入到遠端系統(注意,這裡”welcome to ubuntu 12.04 lts (gnu/linux) ……https://helo.ubunut.com/”出自/etc/motd檔案)。除了”-l”選項之外,為了以其他使用者身份登入到遠端系統,還可以使用”user@hostname”的方式登入到遠端系統。

SSH學習之一 OpenSSH基本使用

         第一次使用ssh登入到遠端系統時,ssh将會給出一個警告資訊,提示使用者确認連接配接的遠端系統是否正确。如果使用者确認yes,ssh将會在使用者主目錄的~/.ssh/known_hosts檔案中存儲遠端系統的密鑰,同時也會把用戶端使用者的密鑰發送到遠端系統。當使用者再次登入到同一遠端系統時,就不會再出現提示資訊了。

         具體用法,在ssh指令後增加一條指令,指令前後使用雙引号括起來。

         $ ssh [email protected] “uname -r”

         這種一次性登入,執行遠端指令,然後立即傳回的功能是非常有用的。

         從網絡通信角度來看,ftp的資料傳輸方式是不安全的,因為ftp協定在網絡中傳輸的使用者名、密碼和資料沒有采取任何加密措施。比較安全的方法是采用openssh的sftp和scp。

         scp是openssh中的另一個重要用戶端軟體。scp指令的格式如下:

         scp [[user@host1:]file1[[user@]host2:]file2

         第一個參數是源檔案,第二個參數是目的檔案。當需要複制遠端系統中的檔案時,scp首先需要成功登入到遠端系統中,然後才能開始傳輸檔案,是以要求提供遠端系統的名字、使用者名和密碼。

         利用scp下載下傳檔案

         例如,要把遠端系統中的~/.ssh/id_rsa.pub檔案複制到本地系統的/tmp目錄中。

         $ scp [email protected]:~/.ssh/id_rsa.pub /tmp

         假定已經把sshd守護程序監聽的tcp端口修改為435。要使用該端口進行檔案複制,則可以用如下指令。

         $ scp -p 534 [email protected]:~/.ssh/id_rsa.pub /tmp

         利用scp上傳檔案

         $ scp /etc/hosts [email protected]:/tmp

         $ scp -p 435 /etc/hosts [email protected]: /tmp

繼續閱讀