歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

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

1、運行環境
WINDOWS下安裝SSH客戶端,名字是SSHSecureShellClient-3.2.9.exe,可以到http://www.ssh.com/下載,當然了,在SERVER端我們也可以安裝Openssh,但此文章著重介紹的是ssh的技術,所以我們使用的是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.greenend.org.uk/~sgtatham/putty/download.html,這個安裝包是所有工具的集合,其實如果只做為連接用,你可以只下putty0.56.exe的。但我們這裡因為要做密鑰對,所以就下整個包安裝吧。
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/secureshell/329wks+srv-lt49ldrk/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.planetmirror.com/pub/ssh/ssh-3.2.9.1.tar.gz下載。安裝時也使用管理員權限:
# 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的安裝就介紹到這裡吧,安裝是很簡單的,希望大家編譯安裝成功。
Copyright © Linux教程網 All Rights Reserved