使用PuTTY進行KEY認證

下面以Windows環境下PuTTY爲例講解使用KEY認證的方法,Linux/UNIX下與此相似,服務器端環境爲OpenBSD。

首先,從下面的網址下載PuTTY的安裝包(for Windows):

http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.60-installer.exe

下完後雙擊安裝,再也不贅述。這個軟件包自帶了下面幾個很是實用的軟件:

PuTTYgen:生成KEY;

Pageant:管理KEY;

PuTTY:SSH客戶端;

PSFTP:使用SSH上傳/下載文件。

下面就來實例講解用PuTTY的這幾個軟件對遠程主機進行KEY認證和管理的方法。假設咱們要在192.168.0.132這個遠程主機上使用young_king這個用戶名進行KEY認證和登陸。

1.生成KEY

啓動PuTTYgen,以下圖:


在密鑰長度欄輸入想要的密鑰長度,越大越安全。這裏以最大的2048位爲例,而後點「Generate」按鈕,會開始生成KEY,生成過程當中須要在下面的空白部分移動鼠標來生成隨機數。

KEY生成完畢後,你能夠輸入一些標識信息,以下圖:


還能夠在下面的passphrase框內輸入「保護碼」,注意要輸入兩遍。「保護碼」也就是密碼的意思,用來保密私鑰的,必定要記住這個哦!

都輸入完畢後,點擊下面的「Save public key」按鈕保存公鑰,以下圖所示:


而後點擊「Save private key」按鈕保存私鑰,以下圖:


這個私鑰最好不要保存在電腦上,咱們把它拷貝到U盤上,隨身帶着,這就是咱們的「KEY盤」。

要養成每個月更換「保護碼」的好習慣,更換「保護碼」仍然要用到PuTTYgen這個軟件,啓動後點擊「Load」,載入私鑰,從新輸入「保護碼」,再確認一遍,而後點擊「Save private key」保存便可!

2.啓用KEY

上面生成了公鑰和私鑰,咱們須要把公鑰上傳到遠程主機的用戶目錄中,就要用到PSFTP這個軟件了。啓動它,以下圖:


輸入命令:open 192.168.0.132

接下來,PSFTP會列出遠程主機上的RSA指紋以供識別,以下圖:


這個指紋能夠在遠程主機上輸入下面的命令查看:

ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

請把這個指紋記在紙上,隨身攜帶,和遠程主機鏈接的時候就拿出來對比一下(這麼作主要是爲了防止鏈接被人劫持和指紋被僞造)。

若是上面PSFTP顯示的指紋和遠程主機上的不一致,那麼毫無疑問是僞造的了,直接回車斷開鏈接。若是相符,你能夠輸入「y」來保存這個指紋到本地計算機上(不推薦),或輸入「n」只是此次鏈接使用。

隨後PSFTP會讓你輸入登陸用戶名和密碼,並自動進入該用戶的根目錄,以下圖(以root爲例):


如今咱們要把第一步生成的公鑰上傳到遠程主機上(請把這個公鑰複製到C:\Documents and Settings\Administrator目錄先,若是你的Windows不是用Administrtor登陸的,就替換成你登陸用的用戶名)。輸入命令:put young_king,能夠看到,公鑰已經上傳到/root目錄了,見下圖:


PuTTY 生成的KEY並不能直接使用,須要轉換一下。用PuTTY登陸(此時上面修改的端口還沒有啓用,仍是默認的22端口),以root身份執行:

ssh-keygen -X -f /root/young_king > /home/young_king/.ssh/authorized_keys

這就把公鑰成功導入到young_king的目錄中了,就能夠被young_king這個用戶使用了!

導入成功後,要刪除多餘的公鑰:

rm /root/young_king

下面介紹幾個PSFTP經常使用的命令:

open xxx.xxx.xxx.xxx:打開遠程主機(xxx.xxx.xxx.xxx爲IP或域名);

put xxxxxxxx:向遠程主機上傳文件(該文件須要事先拷貝到C:\Documents and Settings\Administrator目錄);

get xxxxxxxx:從遠程主機下載文件(下載後保存在C:\Documents and Settings\Administrator目錄);

cd xxxxxx:進入遠程主機的相應目錄;

exit:退出PSFTP(也能夠點右上角的叉關閉,不過不推薦這樣作)。

更多的命令能夠參看PuTTY的幫助文件,這個幫助寫得不錯。

3.使用KEY登陸

咱們上面雖然修改了SSH的配置文件(/etc/ssh/sshd_config),但尚未啓用。輸入下面的命令啓用新的SSH配置,以便咱們用KEY登陸:

kill -HUP `cat /var/run/sshd.pid`

PuTTY提供了一個KEY的管理程序,上面已經提到,是Pageant,咱們使用這個程序來進行 KEY登陸。

啓動Pageant,它會自動縮小到任務欄的通知區域,右鍵單擊,選擇「Add key」,會彈出個對話框讓咱們選擇。插入上面製做好的「KEY盤」,並選擇保存的私鑰,會彈出個對話框讓咱們輸入「保護碼」,以下圖:

若是安裝PuTTY時選擇了讓Pageant關聯.ppk文件,則雙擊私鑰能夠自動啓動Pageant。


輸入在生成KEY時輸入的「保護碼」,私鑰就被導入到Pageant中了。再右鍵單擊任務欄通知區的Pageant圖標,選擇第一項「New session」,Pageant會自動啓動PuTTY,等待輸入遠程主機的相關信息,以下圖:


輸入IP(或域名)和端口號,點擊最下面的「Open」按鈕,PuTTY就會登陸遠程主機了。和PSFTP相似,會彈出個對話框讓你確認遠程主機的RSA指紋,以下圖。同理,指紋不一樣就表示鏈接被劫持或指紋被僞造,點「取消」斷開鏈接;指紋相同就點「否」,不保存主機公鑰到本地計算機。


隨後會讓你輸入用戶名,輸入「young_king」,看看,自動就登陸上去了!


前面更改SSH配置的時候,已經禁用了root遠程登陸和使用密碼登陸,只能使用KEY才能登陸進系統。想要維護系統的時候,就用這個KEY登陸,再su成 root。並且,須要上傳/下載文件的時候,就用PSFTP,全部的操做都在SSH鏈接下進行,還有KEY的保護,安全性不知道提高了多少倍!黑客想要破解真是難於上青天!
相關文章
相關標籤/搜索