什么是免密码登录呢?
看一下原理。
我们有AB两台机器。A想免密码登录B。那么我们在A上生成一对公钥和私钥。然后A会将一段文本和公钥发送到B上。B用文本对公钥加密,再发回给A,A如果用私钥对文本解密后发给B如果和B最早收到的数据一样说明公钥私钥是一对,说明可以登录。因为只有一对才能解密成功。所以就是想免密登录谁就把公钥给谁。
1 输入命令生成密钥:ssh-keygen -t rsa -P ''
2 进入 .ssh 目录(是家目录下的隐藏文件),.ssh目录权限必须是700
3 把公钥(id_rsa.pub)发给目标机器,使用scp命令:scp id_rsa.pub 用户名@IP地址:目标位置
scp id_rsa.pub hr@192.168.234.155:~/
4 把接受到的公钥追加到authorized_keys 中,同时把authorized_keys的权限调整到600
cat id_rsa >> ~/.ssh/authorized_keys
chmod 600 authorized_keys
其实核心就是把公钥放到谁那里就能登录哪里,需要注意的是不同的用户是有区别的的。也就是说,要想登录root 需要将公钥放到root的家目录。要想登录groot需要将公钥放到groot的家目录下。
直接使用root用户配置比较好,这样不存在什么权限问题
5 如果输入ssh IP地址提示需要输入密码,就重启虚拟机试试。