Linux服務器間無需密碼的SSH配置

openSSH的默認設置是允許root可以直接login. (PermitRootLoginyes), 暫且保留這種設置,我們先考慮如何用SSH 直接從A到B不需要密碼,假設用用戶root登錄到A,想SSH到B也作爲root不需要密碼。lv"eZ#Sx0

  1. 分別從A和B上登錄作爲root後運行ssh-keygen,目的是簡單地在/root下創建目錄.ssh,當提示輸入51Testing軟件測試網'eS+`2c8zZ*N,Ly
      passphase時打入兩次回車。這將生成/root/.ssh/identity and/root/.ssh/identity.pub
  2. 測試 一下,從A登錄作爲root,打入#ssh B,會要求提示root password。
  3. 現在從A登錄作爲root,運行scp /root/.ssh/identity.pubB:/root/.ssh/authorized_keys。
    P Yw/M-v0 文件名必須不能弄錯。
  4. 現在再從A運行#ssh B則不需要密碼了:)
基本原理:

M(F4g)P!A0     如果你希望從A作爲用戶user1 SSH 到B作爲用戶user2,若要用RSA鍵對法認證且不需要密碼,則B上的ssh後臺程序拿出~user2/.ssh/authorized_keys中的 與A有關的RSA公鑰來對A上的以user1身份運行的ssh客戶程序進行挑戰,前面我們已經把A上的identity.pub拷貝到B上作爲 authorized_keys了。則A保持私鑰identity,而B上的sshd又拿出A的公鑰來挑戰,因此成功,你可以加很多行到 authorized_keys以允許其它服務器的公鑰可以加進來。

k^3u.vmbj0

實際應用舉例:

51Testing軟件測試網l#E!h1F l5r!D/I~q

使用SSH命令連接一臺服務器,默認情況下會提示我們輸入密碼:51Testing軟件測試網JE%{e%ov
willis:~ # ssh 192.168.4.24951Testing軟件測試網bLwE-DU d qa
Password:51Testing軟件測試網_/r nFMz

51Testing軟件測試網1]8R"W[^2I,U k&k0m

創建密鑰:51Testing軟件測試網:~ufQVM{Z0K6_
willis:~ # ssh-keygen -t rsa 51Testing軟件測試網:_q6w^*I^%uv/
Generating public/private rsa key pair.51Testing軟件測試網-}1TL)hn4b+d[
Enter file in which to save the key (/root/.ssh/id_rsa):
&j S`,{4oN%^0 Enter passphrase (empty for no passphrase):
6U�T8bz I�p0 Enter same passphrase again:51Testing軟件測試網W!Yr,l#XMI
Your identification has been saved in /root/.ssh/id_rsa.51Testing軟件測試網 G8}5nA] k/vlI(gR
Your public key has been saved in /root/.ssh/id_rsa.pub.51Testing軟件測試網Up0Zh4|hW�Q/2z
The key fingerprint is:
0Ks'E)ksW?;S0 ae:1e:a6:49:b9:51:1e:27:bc:a6:7d:dd:bb:6b:1a:55root@willis
"j5N1xK.tT5V0 willis:~ #51Testing軟件測試網.H'V_6yGR`�w y

51Testing軟件測試網 PJ mIE

注意:輸入上面的ssh-keygen命令後,不用輸入任何信息,直接按回來就可以了,其中參數-t rsa是加密的類型,創建後的密鑰在用戶主目錄中的隱藏目錄.ssh中,

[~V cB-]0 51Testing軟件測試網5c3vB ndFCh}%n"g$B

willis:~/.ssh # ls51Testing軟件測試網5^:Mz-d;~v5eo
authorized_keys id_rsa id_rsa.pub known_hosts
&R Z&k/vD0 willis:~/.ssh #51Testing軟件測試網n&M~T&J:/Rp4V

G3gcaeS%P0 id_rsa.pub是公鑰,id_rsa是私鑰,known_hosts保存着所有已發生連接服務器的信息,需要將公鑰裏的信息拷貝到登陸服務器用戶主目錄中的隱藏目錄.ssh的文件authorized_keys中,

4k/aug3d(Lg-{U)m!N}0 51Testing軟件測試網f*`NiAi5n

先看看*.pub文件的內容:
.]d9/7mt6F K$u0 willis:~/.ssh # cat id_rsa.pub51Testing軟件測試網:P#DLcz3D n
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz61yRO3qGkjNPFpYd9nW4O5F1byghbrCXlxMtB3IKDVHxX9ojybRzZcDDl6KN8w0hq08vWpgjlC
~CM8k2B"R0 GkYcU75BXCk7zA/5jABejIUOMzgzC+A9b0eNm9ebTInXmfWlYf3P+axDgUlJ84MTAxa68l+Q/6uYc3KbVSsttB6/F37DRZGlTdSyKn51Testing軟件測試網[,@9q G3C Q
19BimZtZ/M7lyMtqJpYovypxkesbkJjW85sIr2lZeuxqRZWz1ixBwMQyljUvwbHvCS91mzjS76ngKchOCyt9XbwHuL/cXHKMOHgcb
q7o)L{+JrM0 uDqZS8kZFycwVkaNc5f+pZuQ/W8X9Iei35yUEa8qI53Z9o/09fBdOJbl7W5eXLyw==root@willis
#_|�@YKNRj8/0 willis:~/.ssh #

M? TF7B9h$Wq"I0 51Testing軟件測試網6UsMa&rY7| b"X

拷貝文件:51Testing軟件測試網 r-v5jy g;TZ*W
willis:~/.ssh # scp id_rsa.pub[email protected]:/root/.ssh/192.168.4.49
9B_|K"a(Sk^H4yM0 Password:
RU+Z6b*[6`0 id_rsa.pub 100% 394 0.4KB/s 00:0051Testing軟件測試網Ko}7U3b n+N�k
willis:~/.ssh #51Testing軟件測試網"i m{"OaM7I2T

51Testing軟件測試網&[8q+Q-Tj2yd b

scp命令和ssh命令都屬於同一個包,前面的s都表示secure,這樣無論在傳輸數據或是遠程連接都是經過加密的,不用擔心數據被直接截獲。拷貝過去之後,先登陸到這臺服務器上。
/O0?{em0 willis:~/.ssh # ssh 192.168.4.249
D+L x,]"U a2u7h0 Password:51Testing軟件測試網'Tqk,L;a.eK
Last login: Sun Jul 8 11:15:18 2007 from 192.168.4.49
)F4l bgw0 Have a lot of fun...
't ?6wn4Jc0 amd64:~ #51Testing軟件測試網b^|5kw#zm

,Tq;^/k.Gv4|N0 amd64:~ # cd .ssh
,c9~l!I$?PCm0 amd64:~/.ssh # ls51Testing軟件測試網Bp ^)z&k4L(k1u!y0Q0D
192.168.4.49 authorized_keys authorized_keys2 id_rsa id_rsa.pub known_hosts
Bvp.j4_KF8L0 amd64:~/.ssh #

8ukX+{ e;Il0 51Testing軟件測試網9q7?V M-R@H'D y

192.168.4.49就是剛纔傳過來的公鑰文件,爲了保證文件的唯一和可管理性,建議用這個文件命名的方式,要不然信任關係建多了就不好管理了,將這個文件的內容複製到authorized_keys文件中:51Testing軟件測試網1w)q@$I6j[S
amd64:~/.ssh # cat 192.168.4.49
4I/?T}@p C#Pqi/x0 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz61yRO3qGkjNPFpYd9nW4O5F1byghbrCXlxMtB3IKDVHxX9ojybRzZcDDl6KN8w0hq08vWpgjlCGkYcU75BXCk7zA/5jABejIUOMzgzC+A9b0eNm9ebTInXmfWlYf3P+axDgUlJ84MTAxa68l+Q/6uYc3KbVSsttB6/F37DRZGlTdSyKn19BimZtZ/M7lyMtqJpYovypxkesbkJjW85sIr2lZeuxqRZWz1ixBwMQyljUvwbHvCS91mzjS76ngKchOCyt9XbwHuL/cXHKMOHgcbuDqZS8kZFycwVkaNc5f+pZuQ/W8X9Iei35yUEa8qI53Z9o/09fBdOJbl7W5eXLyw==root@willis 51Testing軟件測試網)KkN @@_L1{V2m
amd64:~/.ssh # cat 192.168.4.49 >> authorized_keys

p,UVR1OGG&FtL1a0

@(w8Z0wF0 注意:要用“>>”這個符號,該符號表示追加,不會將以前的內容刪掉,默認情況下,authorized_keys這個文件是不存在的,需要手動來創建,因爲比較長不太好記憶,可以通過這個方法來查找:51Testing軟件測試網6/_s)Jv cx

51Testing軟件測試網d(K aQK'|.zS0P

amd64:~/.ssh # man ssh-keygen
m#{B ]/?0 顯示幫助信息後,搜索"auth"這個關鍵字就可以了,下面就讓我們重新登陸測試一下,先退出當前登陸的主機環境:51Testing軟件測試網 K(Uk|!/

51Testing軟件測試網V1hAu:/Q0^/H

amd64:~/.ssh # exit

krFWQ}0 51Testing軟件測試網*Xl+ta+ADo

重新SSH連接:
j)MwN!e*@V+rRc*L0 willis:~/.ssh # ssh 192.168.4.249
,kd'x8fMPt-leJ0 Last login: Sun Jul 8 11:26:41 2007 from 192.168.4.49
&_)CZo1_@Ft G0 Have a lot of fun...
?zsiQ�sH0 amd64:~ #

+X#G&` i D9D7E3f0 51Testing軟件測試網C/n k'v8_x ` 如果配置和文件名的拼寫都正確,那麼將不會再提示輸入密碼的信息,根據我的經驗,大多數配置失敗都是因爲 authorized_keys的文件命令有誤,所以要多多注意。好了!配置到這裏,SSH的信任關係就成功了,雖然很簡單,但有很多概念性的東西需要我 們掌握,如果想進一步瞭解,可以看看相關的幫助文檔,還有/etc/ssh目錄中的SSH配置文件51Testing軟件測試網 h#i(Jv0N,?}

發佈了109 篇原創文章 · 獲贊 5 · 訪問量 64萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章