SSH客戶端之SSH Secure Shell 的連接方法

SSH客戶端之SSH Secure Shell 的連接方法

1、運行環境 
WINDOWS下安裝SSH客戶端,名字是SSHSecureShellClient-3.2.9.exe,可以到http://www.ssh.com/下載......Ԩ的是http://www.ssh.com/ for UNIX/LINUX 的SERVER 端,現在最新版本是ssh-3.2.9-1.i386.rpm(如果你是AIX或者SOLARIS,要下不同的版本,這裏以RHCE3爲例子)。確定把UNIX類主機的默認的Openssh全部卸載掉後安裝ssh-3.2.9-1.i386.rpm。 

2、爲什麼要公私鑰認證方法(連接到主機不輸入密碼) 
我們需要知道Publick Key是指公鑰,而private key是指私鑰。認證的過程是這樣的:public key對數據進行加密而且只能用於加密,private key只能對所匹配的public key加密過的數據進行解密。我們把public key放在遠程系統合適的位置,然後從本地開始進行ssh連接。此時,遠程的sshd會產生一個隨機數並用我們產生的public key進行加密後發給本地,本地會用private key進行解密並把這個隨機數發回給遠程系統。最後,遠程系統的sshd會得出結論——我們擁有匹配的private key允許我們登錄。就這麼簡單! 

3、在本機生成密鑰過程 
WINDOWS下尋找ssh-keygen2.exe文件,這是生成密鑰的文件,我的在C:/Program Files/SSH Communications Security/SSH Secure Shell,在DOS下執行這個文件,方法是 
C:/Program Files/SSH Communications Security/SSH Secure Shell> ssh-keygen2 -t rsa 
我用的是rsa的密鑰,默認是2048位,足夠我們用的了,還可以使用dsa方式的密鑰。我就不在這裏說明了 
系統自動生成密鑰對,默認放在C:/Documents and Settings/XXX/Application Data/SSH/UserKeys目錄下,其中XXX是你執行程序時用的帳戶,默認名稱是id_rsa_2048_a和id_rsa_2048_a.pub,而後者就是我們要傳到服務器上的公鑰。(生成密鑰對的同時讓你輸入一個密碼,因爲我們想不輸入密碼直接登陸服務器,所以就直接回車了,但如果你想更安全一些,還是建議你在這裏也輸入密碼。) 

4、用SSH客戶端從本機登陸到遠程UNIX類服務器上 
我們還按以前的方法登陸到遠程UNIX類服務器上,這樣登陸後我們會在用戶目錄下,PWD一下,你可以看到你的用戶目錄路徑,比如我的就是/home/test,那麼好了,我們建立一個.ssh2的文件夾,在裏面建立一個文件,authorization,內容如下: 
key id_rsa_2048_a.pub 
然後把你WINDOWS客戶端上的id_rsa_2048_a.pub上傳到你在UNIX類服務器上剛建立好的.ssh2文件夾下,關閉SSH客戶端。 

5、用SSH客戶端公鑰認證狀態登陸 
重新啓動SSH客戶端,在登陸認證狀態欄選擇Public Key方式,登陸到你剛纔放id_rsa_2048_a.pub的那臺服務器,你會發現你馬上就登陸進來了,沒有密碼限制了。這個時候用公私鑰認證和用密碼認證同時存在,還沒有達到我們的要求,那我們就在UNIX類服務器上修改/etc/ssh2/sshd2_config文件 

把以下如下三行的password 刪除,下面這三行是修改好的 
AllowedAuthentications publickey 
AllowedAuthentications hostbased,publickey 
RequiredAuthentications publickey 

這樣當你再用密碼登陸的時候就出現如下對話框了!!
第二章 SSH客戶端之Putty的連接方法 

1、運行環境 
WINDOWS下安裝的SSH客戶端,名字是putty-0.56-installer.exe,可以到如下地址下載: 
http://www.chiark.greenen......就下整個包安裝吧。 

2、在本機生成密鑰過程 
用putty套裝的puttygen來產生密鑰。密鑰的類型選擇SSH2 RSA。密鑰的位數選擇2048,然後點擊"Generator",此時密鑰生成當然也有幾個選項出現。如果你有不止一個key,你可以在“Key comment”作註釋用於區別其他的key。“Key passphrase“和“Confirm passphrase“用於對硬盤上的key進行加密,如過你自己一個人用機器覺得安全有保障的話可以讓它們爲空。然後保存兩個key,用默認方式保存,那麼公鑰你可以指定文件名,私鑰默認的文件擴展名是.ppk。在這裏我們命名它爲test.ppk,而公鑰我們保存爲test.pub,需要注意的是,如果用putty連接,私鑰的擴展名必須是.ppk,而且你還可以將這個.ppk的私鑰保存爲SSH Secure Shell 格式和Openssh格式認知的私鑰,這個對兩個UNIX類主機之間相互通信提供了很大幫助。(我們以後會將兩個UNIX類主機通過公私鑰認證的方法給大家講講) 

4、用Putty從本機登陸到遠程UNIX類服務器上 
我們還按先前的方法登陸到遠程UNIX類服務器上,這樣登陸後我們會在用戶目錄下,PWD一下,你可以看到你的用戶目錄路徑,比如我的就是/home/test,那麼好了,我們建立一個.ssh2的文件夾,在裏面建立一個文件,authorization,內容如下: 
key test.pub 
然後把你WINDOWS客戶端上的test.pub上傳到你在UNIX類服務器上剛建立好的.ssh2文件夾下,關閉Putty。這個上傳命令你可以用 put ,下載就用get。你的通道可以用PSFTP建立,這個也在PUTTY的組件中。 

5、用SSH客戶端公鑰認證狀態登陸 
重新啓動Putty,建立一個session命名爲test,設定你要登陸的遠程ip,協議設爲ssh,Connection設定在ssh的auth選項中,將private key的文件選擇爲剛纔我們由puttygen產生的密鑰test.ppk。點Open,要求輸入username,我們輸入用戶名後遠程系統開始public key認證,如果密鑰有passphrase 則需要輸入,否則直接就登錄了。這個時候用公私鑰認證和用密碼認證同時存在,還沒有達到我們的要求,那我們就在UNIX類服務器上修改/etc/ssh2/sshd2_config文件 

把以下如下三行的password 刪除,下面這三行是修改好的 
AllowedAuthentications publickey 
AllowedAuthentications hostbased,publickey 
RequiredAuthentications publickey 

這樣當你再用密碼登陸的時候就出現如下對話框了!!
第三章 
Ssh服務器端安裝 
1、環境: 
因爲我們選用的SSH服務器是http://www.ssh.com 的SSH Secure Shell for unix類產品,所以我們主要介紹一下此類的Ssh服務器的安裝過程。(SSH有兩個版本,我們現在介紹的是版本2;Openssh就不介紹了,大家有興趣的話可以參考一下網上文章) 

2、編譯安裝 
我們前面介紹過,現在的Ssh server for unix 類的最新版本是ssh-3.2.9-1,我建議大家用官方提供的TAR包,當然,如果你不熟悉編譯過程,用RPM等安裝方式也是可以的。如果用RPM安裝,請先下載ssh-3.2.9-1.i386.rpm , 大家可以到以下地址下載: 
http://ftp.ssh.com/priv/s....../linux/ssh-3.2.9-1.i386.rpm 
安裝時請用管理員權限 
# rpm –ivh ssh-3.2.9-1.i386.rpm 如果是升級安裝那參數就用 –Uvh 
而3.2.9-1的TAR包大家可以到http://downloads.planetmi......也使用管理員權限: 
# tar xzvf ssh-3.2.9.1.tar.gz 
# cd ssh-3.2.9.1 
# ./configure (這裏我們要說明一下,原來有些文檔寫如果你希望用tcp_wrappers來控制SSH,那麼在configure時需要加上選項“--with-libwrap=/path/to/libwrap/”, 用來告訴SSH關於libwrap.a 和tcpd.h的位置,但3.2.0以上的SSH已經不需要這麼麻煩了,它們已經內置了控制訪問權限的功能。) 
# make ; make install ; make clean 
這樣就結束了安裝。 

3、簡單配置Ssh server 
無論你是用RPM或TAR包安裝的ssh server,它的配置文件都在/etc/ssh2/sshd2_config,安裝完後一般不用配置它,但如果你的22端口在安裝ssh server之前已經被其他程序佔用,那麼你需要簡單的配置一下這個文件,執行 vi /etc/ssh2/sshd2_config,找到第27行,Port 22 ,把22改成其他的端口就可以了。 

4、啓動Ssh server 
Ssh server 的默認啓動文件是/usr/local/sbin/sshd2,而安裝程序自動做了一個連接到這個文件的名字爲sshd的文件,我們只要在/usr/local/sbin/目錄中執行 ./sshd & 就可以簡單的啓用Ssh server,然後我們執行 # netstat –na 會看見22端口已經被監聽了(你的可能是其他端口,具體看你在sshd2_config文件中的設置了。)但我們不想每次都要手動啓動Ssh server,那麼我們可以修改一下/etc/rc.d/rc.local文件,在這個文件的最後加入以下內容: 
#start ssh 
/usr/local/sbin/sshd & 
其中第一行爲註釋內容,第二行爲啓動SSH服務器並作爲後臺守護進程運行。 
這樣就好了,系統重起時可以自動啓動SSH服務,但是啓動後你如果在服務器端插上顯示器,會在最後該登陸的時候看到一行字,意思就是Ssh server 服務啓動了,我比較挑剔,不想看到這個提示,而且我想把Ssh服務放到LINUX服務啓動過程中,這樣比較美觀一點。那麼我們就不能修改/etc/rc.d/rc.local文件,我們要進入/etc/init.d/中建立一個SHELL文件,名字就叫sshd 內容如下: 
#!/bin/bash 
cd /usr/local/sbin 
./sshd & 
然後給這個文件加上可執行權限 
# chmod +x sshd 
然後進入/etc/rc3.d,做一個軟鏈接文件 
# cd /etc/rc3.d 
# ln -s ../init.d/sshd S13sshd 
這樣就達到了我的要求,好了,Ssh server的安裝就介紹到這裏吧,安裝是很簡單的,希望大家編譯安裝成功。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章