感觉这个有很多原因导致配置了公钥仍然要输入密码的情况
我是网上找了一个遍发现没一篇文章解决了我的问题,以下是我的情况
!需要:A(192.168.19.129) 无密码登录 B(192.168.19.130)
!网上说要编辑配置文件(又不说编辑A 还是 B),我测试的情况是不需要的,个人认为是因为#里的是他默认的配置
vi /etc/ssh/sshd_config
service sshd restart
#PermitRootLogin yes
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
tail /var/log/secure -n 20 # 出错的话看看日志
!A 生成 ssh 密钥对
ssh-keygen -t rsa -P ''
# 一路回车,默认在 ~/.ssh/id_rsa (~表示root)生成 id_rsa 和 id_rsa.pub
!原理:
A ~/.ssh/id_rsa.pub 添加到 B ~/.ssh/authorized_keys 里,A就可以无密码登录B
!B的 .ssh 创建不明原因一定要像A一样创建,不然就一直需要输密码才能登录,改权限也没用
ssh-keygen -t rsa -P ''
rm -rf .shh/* # 不删也行,A传的时候覆盖
!A 公钥添加到 B
scp ~/.ssh/id_rsa.pub root@192.168.19.130:~/.ssh/id_rsa.pub
scp ~/.ssh/id_rsa.pub root@192.168.19.130:~/.ssh/authorized_keys # 可以传成authorized_keys文件
scp ~/.ssh/id_rsa.pub 192.168.19.130:~/.ssh/authorized_keys # 默认是root用户去传
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
!A 登录 B
ssh root@192.168.19.130 # 第一次要输入yes,他要保存一下ip到 ~/.ssh/known_hosts ,第二次就不用了
我的情况就是红色部分一定要那么操作,不然配置完了后做什么都要输入密码
centos 6.9
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013