Linux主机之间建立信任 公钥私钥 ssh免密登录 一台主机直接控制另一台主机执行命令
工作中有时我们需要用一台服务器去控制另一台服务器执行命令,或者将一些文件拷贝到另一台服务器上,但是这种操作指令默认是需要输入密码的,如果频繁操作的话就会很麻烦,或者如果用代码控制服务器执行命令时需要密码确认也比较麻烦,所以这时候就需要免密登录,给服务器之间建立信任关系。其实这个原理很简单,就是在主机上生成秘钥,将公钥拷贝给各个被信任的服务器,登录时通过主机自留的私钥来解密,从而实现免密登录那么怎么
·
工作中有时我们需要用一台服务器去控制另一台服务器执行命令,或者将一些文件拷贝到另一台服务器上,但是这种操作指令默认是需要输入密码的,如果频繁操作的话就会很麻烦,或者如果用代码控制服务器执行命令时需要密码确认也比较麻烦,所以这时候就需要免密登录,给服务器之间建立信任关系。
其实这个原理很简单,就是在主机上生成秘钥,将公钥拷贝给各个被信任的服务器,登录时通过主机自留的私钥来解密,从而实现免密登录
那么怎么做呢?只需要简单的五个步骤,方法如下:
1.cd /root/.ssh(前三步在主机上执行)
[root@node1 /]# cd /root/.ssh/
[root@node1 .ssh]#
这里输入cd ~/.ssh也是一样的
[root@node1 /]# cd ~/.ssh/
[root@node1 .ssh]#
2.ssh-keygen -t rsa 然后按三次回车直到生成完毕
[root@node1 .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:CdKRh0LZTLzxp8Z6TxDuUccwtdUviTkz5jBg6SQwW0g root@node1
The key's randomart image is:
+---[RSA 2048]----+
| oEO+o .o.. .. |
| +=O.* + o .|
| o.oX... +o ..|
| ..oo++.B o .|
| .So = + . |
| .+o . |
| o. . |
| . .. |
| . .. |
+----[SHA256]-----+
3.cat /root/.ssh/id_rsa.pub 将内容复制
cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDT4M7MNKaWW9n/E2ucr7nbMx41vPMYS+ubX5RbCDTKBLrk0PzygUly6rMEYCT3QA9TA1FwPXQu0yM+qI/QRRTmPtkoDxP7X+tUlbTxAIvh2EUqgKRBOPBGjvnRVX+J2vTpxJcx4hXQDGSNFRCC6YuHJYyoTPtQ7XgQ7zg9bggAHnkVD9ZVagmBfNbCvauMsknAcYtbBiu1pXy14YMxo4C0vzDTgfudDgXfcxlFXFqnUDPU6CUdcjzEb7VluB4anfAjPxTxcaQR/564WMQVjKBay38sWnwWl2V8iYSzlPugB+/eLjhLwJ/j0w3LyMgE0cueayAvHCAmMyByjCYOVcu3 root@node1
4.登陆到被信任主机上 vim /root/.ssh/authorized_keys 将刚才的内容复制过来
这里需要注意的是,如果你的服务器没有做过ssh登录的话这里是没有ssh文件夹的,需要新建一个,如果有就不需要了
另外,如果你无法直接登录被信任的主机,也可以用scp指令,这里就不再赘述了
[root@node3 ~]# mkdir /root/.ssh
[root@node3 ~]# cd /root/.ssh/
[root@node3 .ssh]# vim authorized_keys
把刚刚复制的内容粘贴过来就好(按i进入编辑模式,然后粘贴)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDT4M7MNKaWW9n/E2ucr7nbMx41vPMYS+ubX5RbCDTKBLrk0PzygUly6rMEYCT3QA9TA1FwPXQu0yM+qI/QRRTmPtkoDxP7X+tUlbTxAIvh2EUqgKRBOPBGjvnRVX+J2vTpxJcx4hXQDGSNFRCC6YuHJYyoTPtQ7XgQ7zg9bggAHnkVD9ZVagmBfNbCvauMsknAcYtbBiu1pXy14YMxo4C0vzDTgfudDgXfcxlFXFqnUDPU6CUdcjzEb7VluB4anfAjPxTxcaQR/564WMQVjKBay38sWnwWl2V8iYSzlPugB+/eLjhLwJ/j0w3LyMgE0cueayAvHCAmMyByjCYOVcu3 root@node1
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
5.测试ssh就行了
这时候已经可以免密登录了
[root@node1 .ssh]# ssh 192.168.2.211
Last login: Sun Jun 28 15:52:18 2020 from 192.168.2.101
[root@node3 ~]# exit
登出
Connection to 192.168.2.211 closed.
更多推荐
已为社区贡献1条内容
所有评论(0)