萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux操作系統下利用SSH進行遠程控制

Linux操作系統下利用SSH進行遠程控制

class="21375">

  網絡被攻擊,很多情況是由於服務器提供了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.下載軟件包,下載地址www.ssh.com,下載最新軟件包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服務器的軟件包,其下載地址如下: //www.vandyke.com/download/index.html。另一個運行在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的版本(下載地址: //www.vandyke.com/),這是一個很好的支持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,可以從www.vandyke.com/下載使用。

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

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

copyright © 萬盛學電腦網 all rights reserved