centos配置ssh免密登录:
1、文件简介:
authorized_keys:存放授权过得无秘登录服务器公钥
id_rsa.pub:ssh生成的公钥
id_rsa:生成的私钥
known_hosts:记录 ssh 访问过计算机的公钥(public key)
2、生成秘钥
ssh-keygen
一路回车就行
3、复制公钥到目标主机
ssh-copy-id -i 目标ip
4验证ssh是否添加免密成功
- 遇见的一些小坑
(1)这个是SSH主机密钥变更的警告,因为在 /home/devops/.ssh/known_hosts 文件中记录的远程主机的ECDSA主机密钥与当前从该主机接收到的密钥不匹配,然后我重新再使用ssh-copy-id -i 或者ssh时候,就会有这个报错
解决办法:移除掉之前指定的主机密钥条目
ssh-keygen -R ip
关于ssh的用户问题,我这边有写的脚本通过devops用户跳转到目标机器,但是我复制ssh公钥过去的时候,是在root用户复制过去的。等于做的是root到目标devops用户的免密,后续导致脚本执行失败。
解决办法:切换到devops用户复制公钥
su devops(如果也有这个需求的,需要先创建devops用户并设置密码:groupadd devops && useradd devops -g devops && passwd devops)
ssh-copy-id -i devops@ip
无法复制到目标主机的ssh目录
这个是因为目标主机上没有使用过ssh,在目标主机上执行一下ssh命令就可以了
目标主机:ssh localhost
其实ssh并没有很复杂,就一句话
你要从A 免密到B主机,你就把公钥复制到B主机上,要免密到哪台就把公钥ssh-copy-id -i哪台机器上就行了