由于为了方便登录,或者为了方便的在脚本中使用scp命令同步数据等问题,所以我们需要给机器之间配置免密。
配置步骤例: A机器的mengxin用户希望免密登录B机器的cai-chicken用户
1. 生成秘钥在A机器的mengxin用户下输入以下命令,然后一路回车
ssh-keygen2. 将A机器的公钥拷贝到B机器中
将A机器的mengxin用户下.ssh/id_rsa.pub文件中的内容放到B机器的cai-chicken用户下的.ssh/authorized_keys文件中,手动复制也行,使用ssh-copy-id命令也可以
例: 使用ssh-copy-id命令将公钥拷贝到B机器的cai-chicken目录下,如果公钥位置不在默认位置还可以使用-i参数指定拷贝的文件
ssh-copy-id cai-chicken@B
正常情况下A机器在mengxin用户下就可以使用cai-chicken用户免密登录B机器了。
例:
ssh cai-chicken@B免密不生效怎么办
通常在我们本机的环境执行上面两步就已经可以了,但是在公司的测试环境中往往事与愿违,一台测试机器总是被很多人使用,总有人把环境搞的乱七八糟。
萌新给几十台机器配置过免密,可居然一大半都没生效,严重影响了萌新的摸鱼时间,于是萌新决定总结一下
首先我们先确定配置文件是否正确
我们进到/etc/ssh/sshd_config查看AuthorizedKeysFile是否正确,毕竟我们不确定别人会对这台机器做过什么。
如果AuthorizedKeysFile是这样的,那就没问题,如果不对,那我们就需要将的公钥放到正确位置。
2. 排查日志查看B用户的/var/log/secure日志
注意图片中的"bad ownership",目前萌新遇到的所有免密配置不生效问题都是由于目录权限不对导致的,总有人非要改目录权限,萌新也是无语了,直接一键三连,执行下面三条命令,不过还要注意的是/根目录,之前萌新发现居然有人将/目录配置为777权限
chmod 755 ~ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
然后再检查一下是否可以正常登录了



