![ssh 私钥适用于 root,但不适用于普通用户](https://linux22.com/image/1361206/ssh%20%E7%A7%81%E9%92%A5%E9%80%82%E7%94%A8%E4%BA%8E%20root%EF%BC%8C%E4%BD%86%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7.png)
我有一个 Linux(ubuntu 12)服务器和一个 Windows 桌面。
我正在尝试通过 ssh 和私钥连接
服务器有这些文件
rw------- root.root /root/.ssh
rw------- root.root /root/.ssh/authorized_keys
rw------- user2.user2 /home/user2/.ssh
rw------- user2.user2 /home/user2/.ssh/authorized_keys
(即,对 .ssh 目录和 auth-key 文件都使用 chmod 600)
“authorized_keys” 的内容是 root 和 user2 的副本。只有所有权不同。
尝试从桌面连接时:
ssh -i mykey [email protected] -- works, meaning the key is OK.
ssh -i mykey [email protected] -- doesn't work, for the same "mykey" file!
(私钥失败,但密码登录仍然有效,所以这与服务器根本不接受该用户无关)
root 和 user2 之间可能有什么不同?
(我也尝试了 plink,putty 的“ssh'ing”版本,使用 PPK 文件 - 结果相同,所以我认为这不是 ssh 中的错误:))
编辑:
ssh的具体错误:
无法确定主机 '[myhost.org]:22 ([1.7.1.2]:22)' 的真实性
Plink:“服务器拒绝我们的密钥”
(此消息中的 ip/port/host 都是假的)
答案1
根据问题~/.ssh/authorized_keys 无法正常工作,该.ssh
目录需要有700的权限。
原因是,即使没有正确设置权限,它也可以对 root 起作用,因为 root 对所有内容都有隐含的权限。