欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2015年07月26日 18:46:35   投稿:mdxy-dxy  
這篇文章主要介紹了putty使用密鑰登陸OpenSSH配置方法(圖文詳解),需要的朋友可以參考下

在Windows管理Linux服務器時,常使用putty登陸ssh進行遠程管理。默認登陸驗證方式為密碼認證,該方式雖然簡單,但每次登陸都要輸入一長串的密碼,相當麻煩。而且,如果萬一把root允許登陸打開,還有可能被強力破解,導致嚴重的后果。
所以,通常建議用密鑰登陸驗證代替密碼方式,即簡單,又可靠。

一、為什么建議使用密鑰登陸

通?,F(xiàn)在的Linux發(fā)行版都使用OpenSSH代替telnet、rsh等明文傳輸?shù)慕K端服務。
以紅旗 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默認是同時支持密碼和密鑰兩種認證方式的。轉(zhuǎn)一個說明:

為什么要使用公鑰認證
通常,通過ssh登錄遠程服務器時,使用密碼認證,分別輸入用戶名和密碼,兩者滿足一定規(guī)則就可以登錄。但是密碼認證有以下的缺點:

a)用戶無法設(shè)置空密碼(即使系統(tǒng)允許空密碼,也會十分危險)
b)密碼容易被人偷窺或猜到
c)服務器上的一個帳戶若要給多人使用,則必須讓所有使用者都知道密碼,導致密碼容易泄露,而且修改密碼時必須通知所有人

而使用公鑰認證則可以解決上述問題。

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

二、使用putty生成密鑰和登陸
根據(jù)公鑰認證的原理(見后面說明),認證雙方任何一方都可制作該鑰匙對,并且只要認證方有被認證方的公鑰信息,即可匹配成功。
這里,我們先以Windows上的putty登陸Linux服務器為例說明。所以,該密鑰對由putty制作。
繼續(xù)前,請確保您已經(jīng)把整個putty包都下載完:
官方網(wǎng)站:點擊
最新版本:0.63或1.0,我截圖的版本是0.55的。

點擊這里下載文件

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

引用

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


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

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

ChallengeResponseAuthentication no #關(guān)閉挑戰(zhàn)應答方式
UsePAM no #不使用PAM認證

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

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

點擊在新窗口中瀏覽此圖片

需要把該信息拷貝到Linux服務器的特定文件中:~/.ssh/authorized_keys
其中,“~”表示對應用戶的主目錄,以root為例。
若.ssh目錄不存在,請創(chuàng)建它,并把公鑰信息寫入文件中:

# mkdir ~/.ssh
# chmod 700 ~/.ssh
# vi ~/.ssh/authorized_keys
# chmod 644 ~/.ssh/authorized_keys


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


4、使用putty使用密鑰登陸
對putty進行一些簡單配置,即可使用密鑰登陸Linux服務器。
選擇Connection-SSH-Auth,在“Private key file for authentication”輸入密鑰的路徑:
點擊在新窗口中瀏覽此圖片
然后在Connection的“Auth-login username”輸入登陸的用戶名,例如root:
點擊在新窗口中瀏覽此圖片
◎Putty 0.60 版本在Connection-Data頁內(nèi)。
然后點擊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 root@mail.linuxfly.org


2、把公鑰信息寫入authorized_keys文件中
運行:

# cd ~/.ssh
# cat id_rsa.pub >> authorized_keys



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

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


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

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

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

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

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

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

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

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


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

c)若要修改Key passphrase,可以使用puttygen重新Load私鑰,其會咨詢Key passphrase信息:
點擊在新窗口中瀏覽此圖片
輸入正確密碼后,即可修改,并保存新私鑰即可。是否存在或修改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是沒有區(qū)別的,把公鑰信息拷貝到驗證文件中即可使用。

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

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

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

認證過程分為兩個步驟:

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

六、參考資料
一份非常詳細的putty使用說明:http://docs.google.com/View?docid=ajbgz6fp3pjh_2dwwwwt
源地址打開很慢,我保存了一份:

putty中文教程 pdf版

相關(guān)文章

  • 詳解CentOS中的route命令

    詳解CentOS中的route命令

    這篇文章給大家主要介紹了關(guān)于CentOS中的route命令,文中介紹的很詳細,相信對大家的理解和學習具有一定的參考價值,有需要的朋友們下面來跟著小編一起學習學習吧。
    2016-12-12
  • linux掛載本地yum源問題

    linux掛載本地yum源問題

    這篇文章主要介紹了linux掛載本地yum源問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • linux服務器下LNMP安裝與配置方法

    linux服務器下LNMP安裝與配置方法

    現(xiàn)在很多朋友都選擇了linux服務器下配置LNMP(linux+nginx+mysql+php),這里分享下LNMP安裝與配置方法,需要的朋友可以參考下
    2013-07-07
  • linux編譯內(nèi)核的方法

    linux編譯內(nèi)核的方法

    在本篇文章里小編給各位整理的是關(guān)于linux編譯內(nèi)核的方法,有需要的朋友們可以跟著學習參考下。
    2020-03-03
  • CentOS7環(huán)境中DHCP配置教程

    CentOS7環(huán)境中DHCP配置教程

    大家好,本篇文章主要講的是CentOS7環(huán)境中DHCP配置教程,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-11-11
  • linux Vim基本操作方法

    linux Vim基本操作方法

    Ubuntu的Vi也不好用,搞了個Vim用來學習了,簡單記錄下它的基本操作。還有一本相關(guān)的電子書可下載。
    2013-11-11
  • 使用squid搭建http代理的方法

    使用squid搭建http代理的方法

    這篇文章主要介紹了使用squid搭建http代理的方法,需要的朋友可以參考下
    2016-11-11
  • Centos7安裝配置NFS服務和掛載教程(推薦)

    Centos7安裝配置NFS服務和掛載教程(推薦)

    下面小編就為大家?guī)硪黄狢entos7安裝配置NFS服務和掛載教程(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 【Linux】linux常用基本命令總結(jié)(推薦)

    【Linux】linux常用基本命令總結(jié)(推薦)

    Linux中許多常用命令是必須掌握的,這里將我學linux入門時學的一些常用的基本命令分享給大家一下,有興趣的可以了解一下。
    2016-11-11
  • Linux curl表單登錄或提交與cookie使用詳解

    Linux curl表單登錄或提交與cookie使用詳解

    這篇文章主要給大家介紹了關(guān)于Linux curl表單登錄或提交與cookie使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Linux系統(tǒng)具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08

最新評論