“SSH”讓遠端控制更安全(轉)

post0發表於2007-08-09
“SSH”讓遠端控制更安全(轉)[@more@]

網路被攻擊,很多情況是由於伺服器提供了Telnet服務引起的。的確,對於UNIX系統,如果要遠端管理它,必定要使用遠端終端,而要使用遠端終端,自然要在伺服器上啟動Telnet服務。但是Telnet服務有一個致命的弱點——它以明文的方式傳輸使用者名稱及口令,所以,很容易被別有用心的人竊取口令。目前,一種有效代替Telnet服務的有用工具就是SSH服務。SSH客戶端與伺服器端通訊時,使用者名稱及口令均進行了加密,有效防止了對口令的竊聽。本文向大家介紹執行在常用作業系統上的SSH伺服器軟體包的使用。

  首先,SSH軟體包由兩部分組成,一部分是伺服器端軟體包,另一部分是客戶軟體包。針對UNIX、Linux系統,這兩個軟體包是分開打包在兩個不同的檔案中的。在Windows 9x/NT/2000中,也分為兩部分,不同之處在於,伺服器軟體包只能執行在Windows NT及Windows 2000 Server以上的版本中,而客戶端SSH可以執行在所有的Windows系統中。此外,SSH還分為SSH1及SSH2兩個版本,SSH1是一個完全免費的軟體包,而SSH2在商業使用時則要付費。由其命名也可知SSH1是第一版,它的功能沒有SSH2強大,但是,由於它是免費的,所以廣泛地使用在很多網站中。SSH2中加入了很多功能,並且相容SSH1伺服器,可以對SSH1的客戶端提供很好的服務支援。所以,如果你的系統中安裝了SSH2,那就沒有必要再安裝SSH1軟體包了。

  UNIX/Linux下SSH2安裝步驟

  1.下載軟體包,下載地址,下載最新軟體包SSH2,最好下載源程式軟體包自己進行自行編譯。

  2.解壓及安裝:

  # tar -zxvf ssh2-2.4.0.tar.gz

  # cd ssh2-2.4.0

  # ./configure

  # make

  #make install

  安裝完成。這一過程實際上將伺服器軟體包及客戶端軟體一起安裝了,不必再次安裝客戶端軟體包。

  已編譯好的二進位制軟體包以rpm格式存放在ftp://ftp.ssh.com/pub/ssh/rpm目錄下。它是一個給非商業使用者使用的軟體包,軟體包名稱為:ssh-2.4.0-1.i386.rpm,其中包含了對X Window的支援,另一個不支援X Window的軟體包為ssh-2.4.0-1nox.i386.rpm,下載後可以直接安裝。安裝程式將SSH2軟體包安裝在 /usr/local/bin及/usr/local/sbin下。

  Windows NT上安裝SSH

  在NT及Windows 2000 Server環境下,可選擇的伺服器軟體有:Vshell、ssh2-2.4.0.win-server。Vshell是由Van Dyke提供的一個可以在Windows NT/2000環境下提供SSH2伺服器的軟體包,其下載地址如下:http: //。另一個執行在Windows環境下的SSH伺服器是 SSHWinServer.exe,可以直接從ftp://ftp.ssh.com/pub/ssh目錄下下載。

  Windows環境下的安裝十分簡單,本文不再多介紹。

  與UNIX不同,在Windows環境下,需要分別安裝伺服器及客戶端軟體包。執行在Windows環境下的客戶端軟體,也可以從以上兩個站點下載得到,檔名分別為SecureCRT及SSHWin-2.4.0-pl2。

  關於金鑰的準備工作

  A.伺服器端產生使用者的自己的加密金鑰及對外公開使用的公鑰。在UNIX環境下,產生金鑰的方法如下:

  -keygen

  要求使用者輸入一個長的認證字串,這個字串的功能同password相當,但是,它更長,一般是在20個字元以內。再次輸入相同的字串以確認輸入的正確,之後,系統產生一對金鑰及公鑰。將公鑰複製到本地,以便客戶端對伺服器傳送的資訊進行解密用。當然,如果你不復制,在第一次登入時,伺服器會將它的公鑰自動推給客戶機,以便客戶機能對伺服器提供的資訊進行解密識別。

  B.客戶端產生使用者的加密金鑰及公鑰。客戶端產生自己的金鑰及公鑰的方法與伺服器端相同。而Windows環境下的一些支援SSH的客戶端軟體都採用自己生成的方法,具體情況各不相同,但是可以肯定的是所有的支援SSH的客戶端都可以而且必須產生。以sshWin2.4為例說明如下:

  開啟選單:Edit→Settings→Globe settings→User keys→Generate New keypairs,按照提示會自動產生新的金鑰及公鑰對。

  最後,將客戶機產生的公鑰複製到服務端的主機上使用者的目錄中(在UNIX下應為/home/usrname/.ssh2目錄中)。不同的版本的SSH對公鑰及金鑰的檔名有特定的要求,具體情況請閱讀軟體包中的安裝說明。

  啟動SSH伺服器

  在UNIX/Linux環境下,伺服器程式放置在/usr/local/sbin目錄下,啟動方法如下:

  # sshd

  # ps x

  可以看到SSHD已經啟動了。如果不希望每次重啟動系統,都要手工執行啟動SSHD,則可以自己寫一個指令碼,放置在init.d目錄下,讓系統啟動後,自動執行SSHD服務的啟動工作。或者直接在rc.local中加入一行/usr/local/sbin/sshd也可。

  Windows NT/2000/下啟動SSH2 Server,執行程式組中的start SSH2 Server即可。

  使用SSH

  客戶端在UNIX/Linux系統中就是SSH,存放在/usr/local/bin目錄下。其中有SSH1、SSH2、scp等客戶端工具,使用SSH登入遠端主機方法如下:

   host.ip.of.remote

  如同使用Telnet一樣,不同之處是要求使用者輸入認證字串,如果認證字串透過了認證,則使用者直接登入成功;如果不成功,則是要求使用者輸入系統口令。口令認證成功後,使用者也可以成功登入系統。從使用上看,與Telnet沒有什麼不同之處。而且有了SSH客戶端軟體,如果你要上傳檔案,不必向以前一樣再開一個FTP視窗,再次認證,然後上傳檔案。使用SSH客戶端自帶的scp工具,就可以直接將檔案上傳到遠端伺服器上。使用方法如下:

   host1:dir/filename host2:/home/abc/filename

  在Windows系統中,可供使用的SSH客戶端有:SecurCRT,也即CRT的支援SSH的版本(下載地址:http: //),這是一個很好的支援SSH的遠端終端,它同時支援SSH1及SSH2。使用者可以根據伺服器端自由選擇,讓它支援相應的標準。

  另一個可供選擇的是ssh.com提供的客戶端,下載地址:ftp://ftp.ssh.com/pub/ssh/SSHWin-2.4.0-pl2.exe,這是新版本的SSH2客戶端。

  另外,還有支援SSH的FTP客戶端工具,其中sshwin-2.4中就有一個SSH Secure File Transfer Client,它可以用來在兩個主機之間傳輸加密後的檔案。也即scp的功能。配合SecureCRT的也有一個相應的支援SSH的FTP工具,其名稱為:SecureFX,可以從下載使用。

  由於種種原因,一些支援SSH的GUI客戶端不一定會很好地支援以上各個伺服器,大家可以自行組合以上工具,找到適合自己的工具。一般來說,在 UNIX下的客戶端對各種伺服器的支援是最好的。通常在選擇伺服器及客戶端軟體時,最好選擇同一軟體商的產品,這樣不會出現不相容的問題。

  需要補充的是,如果你既想使用SSH2又不想付費,那麼一個可供選擇的自由軟體是Openssh,它是一個遵守GPL協議的軟體包,同時支援SSH1 及SSH2標準,是另一個被廣泛使用的SSH軟體包(可以從下載)。Openssh的最新版本為Openssh- 2.5.1,提供全部原始碼。不過,在編譯前,應仔細閱讀其說明檔案。編譯過程中要用到zlib及openssl兩個軟體包,使用者首先需要下載並安裝它們,之後再編譯openssh。具體過程請閱讀軟體包中的install檔案

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-938422/,如需轉載,請註明出處,否則將追究法律責任。

相關文章