一、實現原理 使用一種被稱為"公私鑰"認證的方式來進行ssh登錄。"公私鑰"認證方式簡單的解釋是: 首先在客戶端上創建一對公私鑰(公鑰文件:~/.ssh/id_rsa.pub;私鑰文件:~/.ssh/id_rsa),然後把公鑰放到伺服器上(~/.ssh/authorized_keys),自己保留好私 ...
一、實現原理
使用一種被稱為"公私鑰"認證的方式來進行ssh登錄。"公私鑰"認證方式簡單的解釋是:
首先在客戶端上創建一對公私鑰(公鑰文件:~/.ssh/id_rsa.pub;私鑰文件:~/.ssh/id_rsa),然後把公鑰放到伺服器上(~/.ssh/authorized_keys),自己保留好私鑰。當ssh登錄時,ssh程式會發送私鑰去和伺服器上的公鑰做匹配。如果匹配成功就可以登錄了。
二、實驗環境
node1機:192.168.5.10
node2機:192.168.5.20
三、Linux/Unix雙機建立信任
3.1 在node1機生成證書
在node1機root用戶下執行ssh-keygen命令,在需要輸入的地方,直接回車,生成建立安全信任關係的證書。
[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的信任關係。
[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許可權
[root@node1 ~]# chmod 600 /root/.ssh/authorized_keys
四、測試
在node1機上:
[root@node1 ~]# scp /opt/test.txt 192.168.5.20:/opt/
在node2機上:
[root@node2 ~]# scp /opt/test22.txt 192.168.5.10:/opt/
五、遠程執行命令
命令格式:ssh 遠程用戶名@遠程主機IP地址 '遠程命令或者腳本'
[root@node2 ~]# ssh [email protected] 'hostname'