一台内网多个开发公用服务器, 各自用户对对应的 a,b 台服务器做过免密登录, 一直很好用, 突然不能用了; 追缘由以前的服务器多用户感觉吃力太慢, 于是乎换了一台高配服务器, 开发省事直接把原来的公钥给复制过来了, 倒也是相安无事, 前几天小伙伴处理服务器 c 免密, 把公钥重新生成了, 覆盖了原来的文件, vim id_rsa.pub 复制到服务器上面的, 结果, 开发 a.b 服务器不能免密了, 处理的 c 服务器也不能免密登录; 开发的 a,b 服务器因为公钥改了导致, c 服务器检查了 sshd_conf 和 authorized_keys 以后, vim id_rsa.pub 贴上去的内容有问题, so 还是 scp id_rsa.pub root@B:~/id_rsa.pub, 然后登录 b 服务器 cat ~/id_rsa.pub>> ~/.ssh/authorized_keys 这样安全些.
免密登录出问题: 1.sshd_conf 配置检查;
2.id_rsa.pub 变动;
3. 查看 authorized_keys;
4. 权限问题 :.ssh 目录下的 authorized_keys 文件需要 600 或 644 权限
5. StrictModes 问题编辑 sudo vi /etc/ssh/sshd_config, 找到 #StrictModes yes 改成 StrictModes no
服务器 A 需要免密码访问服务器 B:
1. 在 A 上面生成公钥密钥, 执行命令
ssh-keygen -t rsa 或者 ssh-keygen -t rsa -P ''
一路回车即可, 会在~/.ssh 目录下生成 id_rsa 和 id_rsa.pub 两个文件, id_rsa 为私钥, id_rsa.pub 为公钥
2. 将公钥 id_rsa.pub 拷贝到 B 机器上
scp id_rsa.pub root@B:~/id_rsa.pub
3. 在服务器 B 对应的用户 root/.ssh 下面将 id_rsa.pub 追加到~/.ssh/authorized_keys 文件中
- cd /home/user/.ssh
cat id_rsa.pub>> authorized_keys 注意是 >> 别覆盖了;
4. 设置 authorized_keys 权限
- chmod 600 ~/.ssh/authorized_keys
来源: http://www.bubuko.com/infodetail-2573661.html