歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> SSH普及系列文章

SSH普及系列文章

日期:2017/2/27 14:17:41   编辑:更多Linux
  一、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 這樣當你再用密碼登陸的時候就出現如下對話框了!! 第二章是關於PUTTY客戶端使用的認證方法,第三章是關於SSH服務器端安裝的注意事項,第四章是SSH服務器的配置及安全!! 第二章 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的安裝就介紹到這裡吧,安裝是很簡單的,希望大家編譯安裝成功。 兩個UNIX類相互的不用密碼的通信完成了!大家看看吧!! 3、UNIX類客戶端—UNIX類服務端 1、運行環境 兩邊都是UNIX類的服務器A和B,都已經安裝了SSH Secure Shell 的服務器程序且運行正常。我們需要實現的是從主機A登陸到主機B上,不需要密碼。 2、生成密鑰過程 在主機A上: # cd /usr/local/bin # ./ssh-keygen2 -t rsa 默認密鑰的位數是2048,當提示你Passphrase 的時候,直接按兩次回車跳過,成功後會提示如下: Private key saved to /root/.ssh2/id_rsa_2048_a Public key saved to /root/.ssh2/id_rsa_2048_a.pub 3、從A登陸到B過程 我們進入當前A機器用戶的ssh2目錄,創建一個認證文件,步驟如下: # cd ~/.ssh2 # echo "IdKey id_rsa_2048_a" > identification 取保id_rsa_2048_a 和 identification是在同一個目錄下,好了,在主機A上我們的步驟就完成了。 然後我們就把id_rsa_2048_a.pub傳到我們要ssh到的主機B上。這個步驟略過。 ssh登陸到主機B上,在B上的用戶ssh2目錄下創建一個authorization文件,步驟如下: # cd ~/.ssh2 # echo “key id_rsa_2048_a.pub” >> authorization //注意我們這裡是追加 退出主機B,回到主機A # ssh [IP OF B] 顯示Authentication sUCcessful.不需要密碼了!!否則會顯示Authentication failure.你得查查哪有問題了。當然我們還要在B服務器上修改/etc/ssh2/sshd2_config文件 把以下如下三行的password 刪除,下面這三行是修改好的 AllowedAuthentications publickey AllowedAuthentications hostbased,publickey RequiredAuthentications publickey 這樣才達到了我們的目的呢!!



這樣才達到了我們的目的呢!!



Copyright © Linux教程網 All Rights Reserved