Linux兩臺主機用ssh無密碼互相登錄

  環境:有兩臺已經安裝了ssh客戶端的Linux機器:


    172.17.0.1(機器名爲linux1)

    172.17.0.2(機器名爲linux2)。

    兩臺機器都有/root/.ssh目錄(這個目錄是第一次遠程登錄其他主機時生成的)。

    現在要求1的機器無需密碼登錄2的機器。

步驟如下:

(一)在本機生成公鑰和私鑰

[root@linux1~]# cd .ssh
[root@linux1 .ssh]# rm -f * (清除.ssh目錄下所有的舊文件)
[root@linux1 .ssh]# ssh-keygen

過程中出現三個需要輸入的地方直接按回車鍵。

此時在.ssh目錄下生成了id_rsa和id_rsa.pub。其中id_rsa是私鑰,本機要用;id_rsa.pub是公鑰,給其他的機器用。

 

(二)將公鑰上傳到遠程主機上

[root@linux1 .ssh]# scp id_rsa.pub [email protected]:/root/.ssh
按照提示輸入遠程主機(172.17.0.2)的密碼後,可看到上傳成功的提示:
id_rsa.pub                                    100%  398    
0.4KB/s   00:00

 

(三)登錄遠程主機,將客戶端公鑰寫入authorized_keys文件

[root@linux1 .ssh]# ssh 172.17.0.2
Warning:
Permanently added '172.17.0.2' (RSA) to the list of known hosts.
[email protected]'s
password:
Last login: Tue
Apr 29 21:09:27 2017 from 192.168.0.56
[root@linux2 ~]#cd .ssh
[root@linux2 .ssh]# cat id_rsa.pub >> authorized_keys

此時可在2機器的.ssh目錄下看到兩個文件authorized_keys和id_rsa.pub。其中id_rsa.pub的主要目的就是把公鑰信息寫到authorized_keys中。然後把兩臺主機中的id_rsa.pub都刪除掉,否則這臺機器將無法不用密碼登錄別的機器。

 

(四)退出遠程主機,重新登錄遠程主機

[root@linux1 .ssh]# ssh 172.17.0.2

此時發現在1機器上不需要密碼就可以登錄遠程機器2,且在1的機器上的.ssh中保留了兩個文件:id_rsa和known_hosts,在2的機器上的.ssh中保留了一個文件:authorized_keys。

 

(五)若要實現兩臺linux主機之間的無密碼登錄,只需把上述的兩臺主機對調一下再操作一遍即可。


  還有另外一種方法:

[root@linux1~]# ssh-keygen -t rsa
[root@linux1~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]

  哈哈..........還是第二種方法簡單。j_0080.gif

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