linux服务器免密登录
需求
在服务器之间的scp和ssh需要免密,懒(就是不想输密码)可以这么干。
举个栗子🌰:
- 服务器三台:
st01、st02、st03 - 用户:root
ps:可以通过修改/etc/hosts文件完成,修改完成后使用ping命令检查是否生效
建议服务器名称和hosts名称保持一致方便管理:
hostnamectl set-hostname st01
ps:设置名称后重启生效:reboot,(慎用,我用了之后开发同学的服务停了,追着我打了十条街)
1、生成密钥:
- 登录st01服务器
- 在st01服务器上生成密钥
ssh-keygen -t rsa
- 一直回车就行
2、把生成的公钥传到st02,st03的tmp目录中临时存放
scp /root/.ssh/id_rsa.pub st02:/tmp
- 同样的命令给st03传一份儿
3、使用导入密钥
- 登录st02服务器
导入密钥
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys
删除临时存放的公钥
rm -rf /tmp/id_rsa.pub
- st02免密登录st01试用
ssh st01
非root用户
假如不是root用户而是xuxu用户,第二步传略有不同
scp /root/.ssh/id_rsa.pub xuxu@st02:/tmp
因为,如果没有xuxu@,默认是root用户。