解决SSH配置免密码登陆后总是还要输入密码

解决SSH配置免密码登陆后总是还要输入密码

摘要

解决SSH配置免密码登陆后总是还要输入密码

ssh免密码配置

期望在A机器上ssh登陆到B机器上
ssh root@192.168.1.B
直接进入B,无需输入密码.

首先A机器上 ssh-keygen 一路回车
找到 /root/.ssh/id_rsa.pub
拷贝 /root/.ssh/id_rsa.pub 到 B机器的 /root/.ssh 下,并重命名为authorized_keys

B机器上的各个文件权限检查 (默认情况下都是正常的)

drwx------  2 root root 4096 12月 29 14:10 .ssh/
-rw-r--r--  1 root root 2009 12月 29 14:10 authorized_keys
-rw-------  1 root root 1679 12月 29 13:36 id_rsa
-rw-r--r--  1 root root  403 12月 29 13:36 id_rsa.pub
-rw-------  1 root root 1822 12月 29 13:36 known_hosts
drwxrwxr-x 20 root root 4096 12月 29 16:39 /root

r=4
w=2
x=1

发生的错误

按照以上的配置,应该能正常直接登陆B机器
但是实际情况还提示我输入密码.

B机器上启动另外一个端口的ssh服务
sudo /usr/sbin/sshd -p 5555 -dd

A机器尝试连接
ssh -vvv -p 5555 root@192.168.1.B

可以看到B机器上提示那么一句话Authentication refused: bad ownership or modes for directory /root
也就是/root权限不对
因为/root目录曾经被我修改为了 777 也就是 drwxrwxrwx 太开放了.

root@xushuo-UBUNTU:~# ls -ld /root
drwxrwxrwx 20 root root 4096 12月 29 16:39 /root

B机器/root目录去掉w权限就好了 sudo chmod o-w /root

参考帖子

https://ubuntuforums.org/archive/index.php/t-2219973.html