我的设置中有三个文件:
id_rsa
id_rsa.pub
authorized_keys
authorized_keys
有内容副本id_rsa.pub
以允许无密码登录。
这些文件已在两台计算机之间复制。如果我从计算机 1 ssh 到计算机 2,则一切正常。如果我从计算机 2 ssh 到计算机 1,则系统会提示输入密码。有人能告诉我为什么会发生这种情况吗?
此外,两个系统都运行 Ubuntu 10.04。我在两个系统上都重新安装了 openssh-server 软件包。文件的权限相同。/etc/sshsshd_config
和ssh_config
文件相同。我已经运行过-v -v -v
,两个会话之间的唯一区别是,一个会话显示“服务器已接受密钥”,另一个会话则继续输入密码。
那么还剩下什么需要检查吗?
答案1
您可以通过停止服务器并从命令行运行它来获取服务器调试输出:
sudo /usr/sbin/sshd -Dd
尝试从另一台计算机登录后,我得到了以下输出:
...
Authentication refused: bad ownership or modes for directory /home/user
...
检查我的目录:
ls -l /home/user
drwxrwxr-x 142 user user 7.7K 06-19 15:45 /home/user/
正确的权限应该是:
chmod 750 /home/user
我这样做之后,它现在就可以工作了。
答案2
您是否将计算机1的指纹添加到.ssh/authorized_keys
计算机2上?
此外,您不应在多个盒子中使用相同的私钥,因为如果其中一个盒子被破解,安全性就会降低。我个人对每个服务器的每个客户端使用一个密钥。
答案3
除了 Daenyth 的回答之外,还有一件事要检查,那就是两台计算机上 ~/.ssh 目录中的文件所有权和权限。
确保您被设置为该目录中所有文件的用户:chown *USERNAME*: ~/.ssh/*
另外,检查文件权限是否允许你的用户读写,但不允许团体或者其他:chmod 600 ~/.ssh/*