##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'