linux服务器免密登录

162 阅读1分钟

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用户。