生成密钥
如果vm1需要访问vm2,则需要在vm1上生成ssh 密钥,然后拷贝给vm2。
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:ZNXVC6euyG3arpEvckXz8j1zNDM2FDJmdXifq4bdl84 root@vm1
The key's randomart image is:
+---[RSA 2048]----+
| .. .o+.|
| . .*.o+|
| o o *.=|
| o o . +.|
| S . + . .|
| .o o B.|
| .o+ * =.*|
| . =+= =.*o|
| oo*+. .E=|
+----[SHA256]-----+
拷贝密钥
原始命令是这样的
ssh-copy-id -i ~/.ssh/id_rsa.pub root@vm2
安装sshpass,可以不用换行输入密码,这也算是免输入密码的一种,但是不太安全。这里使用sshpass是为了ssh-copy-id不需要换行输入密码
yum install -y sshpass
sshpass -p xxxxxxx ssh-copy-id -i ~/.ssh/id_rsa.pub root@vm2
显示
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system.
(if you think this is a mistake, you may want to use -f option)
测试
[root@vm1 home]# ssh root@vm2
Last failed login: Sat Aug 17 03:45:22 EDT 2019 from vm1 on ssh:notty
There were 3 failed login attempts since the last successful login.
Last login: Thu Aug 15 23:21:23 2019 from i7-8700-16g
[root@vm2 ~]#
免密登录成功。