Linux ssh雙向免密認證

##1、實現原理 使用一種被稱爲"公私鑰"認證的方式來進行ssh登陸。"公私鑰"認證方式簡單的解釋是: 首先在客戶端上建立一對公私鑰(公鑰文件:~/.ssh/id_rsa.pub;私鑰文件:~/.ssh/id_rsa),而後把公鑰放到服務器上(~/.ssh/authorized_keys),本身保留好私鑰。當ssh登陸時,ssh程序會發送私鑰去和服務器上的公鑰作匹配。若是匹配成功就能夠登陸了。 ##2、實驗環境 node1機:192.168.5.10 node2機:192.168.5.20 ##3、Linux/Unix雙機創建信任 ###3.1 在node1機生成證書 在node1機root用戶下執行ssh-keygen命令,在須要輸入的地方,直接回車,生成創建安全信任關係的證書。node

[root@node1 ~]# ssh-keygen -t rsa

注意:在程序提示輸入passphrase時直接輸入回車,表示無證書密碼。    上述命令將生成私鑰證書id_rsa和公鑰證書id_rsa.pub,存放在用戶家目錄的.ssh子目錄中。 ###3.2 查看生成密鑰的文件安全

[root@node1 ~]# ll  /root/.ssh/

###3.3 node1對node2創建信任關係 將公鑰證書id_rsa.pub複製到機器node2的root家目錄的.ssh子目錄中,同時將文件名更換爲authorized_keys,此時須要輸入node2機的root用戶密碼(還未創建信任關係)。創建了客戶端到服務器端的信任關係後,客戶端就能夠不用再輸入密碼,就能夠從服務器端拷貝數據了。服務器

[root@node1 ~]# scp -r /root/.ssh/id_rsa.pub 192.168.5.20:/root/.ssh/authorized_keys

###3.4 node2對node1創建信任關係 在node2機上執行一樣的操做,創建node2對node1的信任關係。ssh

[root@node2 ~]# ssh-keygen -t rsa

查看文件測試

[root@node2 ~]# ll  /root/.ssh/

[root@node2 ~]# scp -r /root/.ssh/id_rsa.pub 192.168.5.10:/root/.ssh/authorized_keys

###注意:記得修改authorized_keys權限code

[root@node1 ~]# chmod 600 /root/.ssh/authorized_keys

##4、測試 在node1機上:test

[root@node1 ~]# scp /opt/test.txt 192.168.5.20:/opt/

在node2機上:登錄

[root@node2 ~]# scp /opt/test22.txt 192.168.5.10:/opt/

##5、遠程執行命令 命令格式:ssh 遠程用戶名@遠程主機IP地址 '遠程命令或者腳本'原理

[root@node2 ~]# ssh root@192.168.5.10 'hostname'

相關文章
相關標籤/搜索