一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - putty使用密鑰登陸OpenSSH配置方法(圖文詳解)

putty使用密鑰登陸OpenSSH配置方法(圖文詳解)

2021-10-28 16:10服務器知識網 服務器知識

這篇文章主要介紹了putty使用密鑰登陸OpenSSH配置方法(圖文詳解),需要的朋友可以參考下

在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.63或1.0,我截圖的版本是0.55的。

點擊這里下載文件

其中包括:PuTTY、Puttygen、PSCP、Plink、Pagent 等工具。
1、使用puttygen制作密鑰
啟動puttygen工具,為兼容OpenSSH密鑰,選擇“SSH2 RSA”:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
單擊 Generate 按鈕,并使用鼠標在“key”框內移動,以獲得足夠的隨機數據供生成密鑰使用:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
※期間,你會看到進度條上面有個提示“Please generate some radomness by moving the mouse over the blank area.”,意思就是讓你用鼠標在空白區域隨機移動。隨著鼠標在空白區域的移動,進度條會一直走下去。停止移動鼠標,進度條也就停止了。所以,那我們要移動鼠標,直到進度條走滿為止。
完成后的窗口如下:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
其中:

 

引用

Key comment:是注釋,不會影響密鑰的有效性,但可作為自己用于區別其他密鑰的參考;
Key passphrase 和 Confirm passphrase :用于保護私鑰,如果不輸入該信息,那么任何人只要拿到該私鑰,即可無密碼登陸系統,非常危險;通常情況下,我是建議大家輸入的,但這里為了方便說明,暫時留空,請看后面使用的說明。

 


隨后,點擊“Save private key”保留私鑰。
如果沒有輸入Key passphrase信息,會有警告:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
輸入私鑰的文件名:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
※公鑰信息可以不用保留在本地的,puttygen可以從私鑰得到它,驗證時也不會用到。

2、修改openssh配置
修改/etc/ssh/sshd_config:

ChallengeResponseAuthentication no #關閉挑戰應答方式
UsePAM no #不使用PAM認證

然后重啟sshd服務,原因見:這里

3、拷貝公鑰信息
上面密鑰信息窗口的“Key”框最后生成的就是公鑰信息:

putty使用密鑰登陸OpenSSH配置方法(圖文詳解)

需要把該信息拷貝到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”輸入密鑰的路徑:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
然后在Connection的“Auth-login username”輸入登陸的用戶名,例如root:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
◎Putty 0.60 版本在Connection-Data頁內。
然后點擊Open即可:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
若一切正常,則可以在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文件
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
這里也可以從圖中的公鑰信息,與id_rsa.pub對比一下,應該是一致的。
c)點擊“Save private key”保留私鑰。
d)putty使用該新的私鑰登陸服務器即可。

四、注意事項
1、檢查OpenSSH服務端的配置


OpenSSH的配置通常保存在:/etc/ssh/sshd_config
PermitRootLogin no # 禁止root用戶登陸
StrictModes yes # 檢查密鑰的用戶和權限是否正確,默認打開的
RSAAuthentication yes # 啟用 RSA 認證
AuthorizedKeysFile .ssh/authorized_keys # 驗證公鑰的存放路徑
PubkeyAuthentication yes # 啟用公鑰認證
PasswordAuthentication no # 禁止密碼認證,默認是打開的。

說明:
a)如果StrictModes為yes,而authorized_keys的權限為664等的情況,則驗證密鑰的時候,會報錯:

bad ownership or modes for file /home/linuxing/.ssh/authorized_keys

b)若PasswordAuthentication設置為no,則禁用密碼認證,配合啟動公鑰認證,是更安全的方式。

2、公鑰存放的路徑
Putty作為客戶端是不需要使用公鑰的,而Linux服務端的公鑰是存放在:~/.ssh/authorized_keys中。
也就是講,如果登陸用戶的主目錄不同,存放的路徑是不相同的。
例如某用戶:

$ echo ~
/home/linuxing
則密鑰在:
/home/linuxing/.ssh/authorized_keys

若你想使用同一私鑰,但不同用戶登陸服務器,則請保證公鑰信息已經寫入每個用戶的驗證文件中咯。并且一定要注意驗證文件的用戶和權限不能搞錯哦。

3、Key passphrase密碼
如果你在保存私鑰的時候,輸入了Key passphrase密碼。其就會使用該信息對私鑰加密。這會帶來一個好處:就是萬一您的私鑰給盜走了,但如果小偷不知道該密碼,他也無法使用該私鑰登陸服務器的。簡單來說,就是加強了安全性。
a)在putty使用這種私鑰登陸服務器的時候,就會有提示:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
只有輸入正確的密碼才能通過認證。
※這里看上去和使用密碼認證方式登陸OpenSSH有點類似。但實際上是完全不同的。該
Key passphrase密碼是用于管理私鑰,避免私鑰被盜用的;而OpenSSH的密碼認證方式使用的密碼,指的是Linux服務器端的用戶密碼,即PAM信息。也就是說,即使你修改了PAM的密碼,但只要Key passphrase信息正確,你還是可以登陸到服務器上的。(因為使用它解壓出來的私鑰是沒變的)


b)若每次登陸都要輸入Key passphrase,明顯達不到我們簡化登陸步驟的目的。在既要保證安全,又要簡便的情況下,我們可以使用PAGEANT。
PAGEANT的作用很簡單,就是在我們輸入一次私鑰密碼后,把解密后的私鑰保存在PAGEANT中。
再次使用putty登陸的時候,PAGEANT就會自動的把解密后私鑰用于認證,這樣就不用我們多次輸入密碼了。而
當我們退出PAGEANT的時候,會自動刪除私鑰,重新登陸的時候需要再次檢驗。實現“一次驗證,多次使用”的目的。
打開PAGEANT,其會自動放入Windows右下角的任務欄中:putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
右鍵點擊后,選擇“View Keys”:putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
在彈出框中,選擇“Add Key”,輸入Putty的私鑰(.PPK),并會提示輸入Key passphrase:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
結果:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
直接選擇菜單的“Add Key”也可以。
這時候,使用putty再次登陸服務器就不需要Key passphrase啦。
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
◎其實,即使沒有Key passphrase的私鑰也可以導入PAGEANT中的,這時候就可以不用在Putty的配置文件中指定私鑰的路徑咯。也可以達到一定的安全目的的。

c)若要修改Key passphrase,可以使用puttygen重新Load私鑰,其會咨詢Key passphrase信息:
putty使用密鑰登陸OpenSSH配置方法(圖文詳解)
輸入正確密碼后,即可修改,并保存新私鑰即可。是否存在或修改Key passphrase是不會改變公鑰信息的。

4、保存putty的配置信息
putty的配置信息是保存在Windows注冊表的,需使用下面的命令導出:

regedit /e PuTTY.config.reg "HKEY_CURRENT_USER\Software\SimonTatham\PuTTY"

5、使用DSA密鑰
默認配置下,OpenSSH就同時支持RSA和DSA兩種編碼的密鑰。只要在生成密鑰的時候選擇“DSA”即可。例如:

# ssh-keygen -t dsa

使用上和RSA是沒有區別的,把公鑰信息拷貝到驗證文件中即可使用。

五、公鑰認證的原理
所謂的公鑰認證,實際上是使用一對加密字符串,一個稱為公鑰(public key),任何人都可以看到其內容,用于加密;另一個稱為密鑰(private key),只有擁有者才能看到,用于解密。通過公鑰加密過的密文使用密鑰可以輕松解密,但根據公鑰來猜測密鑰卻十分困難。
ssh 的公鑰認證就是使用了這一特性。服務器和客戶端都各自擁有自己的公鑰和密鑰。為了說明方便,以下將使用這些符號。

Ac 客戶端公鑰
Bc 客戶端密鑰
As 服務器公鑰
Bs 服務器密鑰

在認證之前,客戶端需要通過某種安全的方法將公鑰 Ac 登錄到服務器上。

認證過程分為兩個步驟:

1、會話密鑰(session key)生成
客戶端請求連接服務器,服務器將 As 發送給客戶端。
服務器生成會話ID(session id),設為 p,發送給客戶端。
客戶端生成會話密鑰(session key),設為 q,并計算 r = p xor q。
客戶端將 r 用 As 進行加密,結果發送給服務器。
服務器用 Bs 進行解密,獲得 r。
服務器進行 r xor p 的運算,獲得 q。
至此服務器和客戶端都知道了會話密鑰q,以后的傳輸都將被 q 加密。
2、認證
服務器生成隨機數 x,并用 Ac 加密后生成結果 S(x),發送給客戶端
客戶端使用 Bc 解密 S(x) 得到 x
客戶端計算 q + x 的 md5 值 n(q+x),q為上一步得到的會話密鑰
服務器計算 q + x 的 md5 值 m(q+x)
客戶端將 n(q+x) 發送給服務器
服務器比較 m(q+x) 和 n(q+x),兩者相同則認證成功

六、參考資料
一份非常詳細的putty使用說明:http://docs.google.com/View?docid=ajbgz6fp3pjh_2dwwwwt

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品国产免费第一区二区 | 国产在亚洲线视频观看 | nxgx欧美| 91东航翘臀女神在线播放 | 亚洲成av人影院 | 香港论理午夜电影网 | 亚州笫一色惰网站 | 喜爱夜蒲2三级做爰 | 日本高清无吗 | 99久久香蕉国产综合影院 | 亚洲国产成人久久午夜 | 久久最新地址获取 | 交换年轻夫妇HD中文字幕 | 久久久久久久99精品免费观看 | 日本美女视频韩国视频网站免费 | 96日本xxxxxxxxx70| 欧美精品久久久久久久免费观看 | 国产伦码精品一区二区三区 | 亚洲成人精品久久 | 非洲一级毛片又粗又长aaaa | 双性np肉文| 日本ww视频 | 日b视频免费 | 女人和男人搞基 | 波多野结衣女教师在线观看 | 免费人成在线观看视频播放 | 恩爱夫妇交换小说 | 给我免费的视频在线观看 | 青苹果乐园影院免费观看完整版 | 久久草香蕉频线观 | 久草在线精彩免费视频 | 欧洲男同直粗无套播放视频 | 天堂69亚洲精品中文字幕 | 欧美精品99久久久久久人 | 成人青青草 | 91视频a| www.87福利| voyeur多毛厕所 | 亚洲国产精品线在线观看 | 欧美xxxxx九色视频免费观看 | 欧美精品综合一区二区三区 |