putty的密鑰轉換爲SecureCRT的密鑰

在Windows管理Linux服務器時,常使用putty登陸ssh進行遠程管理。默認登陸驗證方式爲密碼認證,該方式雖然簡單,但每次登陸都要輸入一長串的密碼,相當麻煩。而且,如果萬一把root允許登陸打開,還有可能被強力破解,導致嚴重的後果。
   所以,通常建議用密鑰登陸驗證代替密碼方式,即簡單,又可靠。
一、爲什麼建議使用密鑰登陸
通常現在的Linux發行版都使用OpenSSH代替telnet、rsh等明文傳輸的終端服務。
以紅旗 DC Server 5.0爲例:

引用
# rpm -qa|grep -E -w 'openssh'
openssh-clients-4.0p1-1.2AX
openssh-server-4.0p1-1.2AX
openssh-4.0p1-1.2AX

而OpenSSH默認是同時支持密碼和密鑰兩種認證方式的。轉一個說明:

爲什麼要使用公鑰認證
通常,通過ssh登錄遠程服務器時,使用密碼認證,分別輸入用戶名和密碼,兩者滿足一定規則就可以登錄。但是密碼認證有以下的缺點:
引用
a)用戶無法設置空密碼(即使系統允許空密碼,也會十分危險)
b)密碼容易被人偷窺或猜到
c)服務器上的一個帳戶若要給多人使用,則必須讓所有使用者都知道密碼,導致密碼容易泄露,而且修改密碼時必須通知所有人

而使用公鑰認證則可以解決上述問題。
引用
a)公鑰認證允許使用空密碼,省去每次登錄都需要輸入密碼的麻煩
b)多個使用者可以通過各自的密鑰登錄到系統上的同一個用戶
c)即使修改了對應用戶的密碼,也不會影響登陸
d)若同時禁用密碼認證,則只要保證私鑰的安全,不會受到暴力破解的威脅

二、使用putty生成密鑰和登陸
根據公鑰認證的原理(見後面說明),認證雙方任何一方都可製作該鑰匙對,並且只要認證方有被認證方的公鑰信息,即可匹配成功。
這裏,我們先以Windows上的putty登陸Linux服務器爲例說明。所以,該密鑰對由putty製作。
繼續前,請確保您已經把整個putty包都下載完:
官方網站:點擊
最新版本:0.60,我截圖的版本是0.55的。
本地下載:
其中包括:PuTTY、Puttygen、PSCP、Plink、Pagent 等工具。
1、使用puttygen製作密鑰
啓動puttygen工具,爲兼容OpenSSH密鑰,選擇“SSH2 RSA”
點擊在新窗口中瀏覽此圖片
單擊 Generate 按鈕,並使用鼠標在“key”框內移動,以獲得足夠的隨機數據供生成密鑰使用:
點擊在新窗口中瀏覽此圖片
※期間,你會看到進度條上面有個提示“Please generate some radomness by moving the mouse over the blank area.”,意思就是讓你用鼠標在空白區域隨機移動。隨着鼠標在空白區域的移動,進度條會一直走下去。停止移動鼠標,進度條也就停止了。所以,那我們要移動鼠標,直到進度條走滿爲止。
完成後的窗口如下:
點擊在新窗口中瀏覽此圖片
其中:
引用
Key comment:是註釋,不會影響密鑰的有效性,但可作爲自己用於區別其他密鑰的參考;
Key passphrase 和 Confirm passphrase :用於保護私鑰,如果不輸入該信息,那麼任何人只要拿到該私鑰,即可無密碼登陸系統,非常危險;通常情況下,我是建議大家輸入的,但這裏爲了方便說明,暫時留空,請看後面使用的說明。

隨後,點擊“Save private key”保留私鑰。
如果沒有輸入Key passphrase信息,會有警告:
點擊在新窗口中瀏覽此圖片
輸入私鑰的文件名:
點擊在新窗口中瀏覽此圖片
※公鑰信息可以不用保留在本地的,puttygen可以從私鑰得到它,驗證時也不會用到。

2、修改openssh配置
修改/etc/ssh/sshd_config:
引用
ChallengeResponseAuthentication no  #關閉挑戰應答方式
UsePAM no  #不使用PAM認證

然後重啓sshd服務,原因見:這裏

3、拷貝公鑰信息
上面密鑰信息窗口的“Key”框最後生成的就是公鑰信息:
點擊在新窗口中瀏覽此圖片
需要把該信息拷貝到Linux服務器的特定文件中:~/.ssh/authorized_keys
其中,“~”表示對應用戶的主目錄,以root爲例。
若.ssh目錄不存在,請創建它,並把公鑰信息寫入文件中:
# mkdir ~/.ssh
# chmod 700 ~/.ssh
# vi ~/.ssh/authorized_keys
# chmod 644 ~/.ssh/authorized_keys

※請務必留意:文件和目錄的權限問題,用戶必須是將要進行認證的用戶,而權限必須是0644,也就是禁止其他人對該文件寫入信息。(否則,某些有心人把自己的公鑰寫入這裏,他也可以無密碼進來了)
因爲,通常umask是0022或0002的,所以請使用chown和chmod修改爲對應的權限咯。


4、使用putty使用密鑰登陸
對putty進行一些簡單配置,即可使用密鑰登陸Linux服務器。
選擇Connection-SSH-Auth,在“Private key file for authentication”輸入密鑰的路徑:
點擊在新窗口中瀏覽此圖片
然後在Connection的“Auth-login username”輸入登陸的用戶名,例如root:
點擊在新窗口中瀏覽此圖片
◎Putty 0.60 版本在Connection-Data頁內。
然後點擊Open即可:
點擊在新窗口中瀏覽此圖片
若一切正常,則可以在session中Save保存配置。

三、使用OpenSSH生成密鑰
密鑰既可使用putty生成,也可用OpenSSH生成。
1、Linux下生成密鑰
運行:
引用
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  <-密鑰路徑
Enter passphrase (empty for no passphrase): <-密鑰保護密碼
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa. <-私鑰
Your public key has been saved in /root/.ssh/id_rsa.pub. <-公鑰
The key fingerprint is:
17:28:4c:c3:e4:18:d4:c2:31:bd:be:a7:a9:d4:a8:48 [email protected]

2、把公鑰信息寫入authorized_keys文件中
運行:
# cd ~/.ssh
# cat id_rsa.pub >> authorized_keys


3、生成putty的私鑰
由於SSH的標準中,並沒有固定密鑰文件的格式。而Putty使用的私鑰格式和OpenSSH生成的有點不同,需要轉換一下。
a)把id_rsa傳到Windows機器上
b)使用puttygen的“Load”讀取id_rsa文件
點擊在新窗口中瀏覽此圖片
這裏也可以從圖中的公鑰信息,與id_rsa.pub對比一下,應該是一致的。
c)點擊“Save private key”保留私鑰。
d)putty使用該新的私鑰登陸服務器即可。


*******************************************************************************************

* 爲最大限度不影響讀者感官: *

* http://fengzhilinux.blog.51cto.com/1343279/1320317另起欄目,也請大家多支持 *

*******************************************************************************************



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