我有一个 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 对所有内容都有隐含的权限。