Mac OS X 10.9 Mavericks 无法通过无密码 SSH 连接本地主机(适用于 Hadoop)

Mac OS X 10.9 Mavericks 无法通过无密码 SSH 连接本地主机(适用于 Hadoop)

抱歉,这听起来像是重复,但我相当确定它与 Mac OS X 10.9 有关,在我的 10.8 机器上它运行良好。我像往常一样做了所有相同的事情:

$:~ ssh-keygen -t rsa -P "" $:~ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

但现在 10.9 上却总是要求输入密码。显然,它不接受公钥:

%ssh -v localhost OpenSSH_6.2p2,OSSLShim 0.9.8r 8 Dec 2011 ... debug1:可以继续的身份验证:publickey,keyboard-interactive debug1:下一个身份验证方法:publickey debug1:提供 RSA 公钥:/Users/edwardbrowne/.ssh/id_rsa debug1:可以继续的身份验证:publickey,keyboard-interactive

请注意,当它在 10.8 上工作时,“提供 RSA 公钥:”之后的行如下所示:

debug1: Server accepts key: pkalg ssh-rsa blen 279

但在 10.9 中没有接受它,它只会转到下一个身份验证方法。在这两种情况下,“id_rsa”文件似乎相同:

% ls -l id_rsa -rw------- 1 edwardb staff 1679 Mar 30 10:16 id_rsa %

那么为什么服务器在一种情况下接受公钥的提供,而在另一种情况下却不接受呢?

谢谢,干杯 - Ed

答案1

如果出现任何错误,请删除(或更改为其他内容)~/.ssh/known_hosts 并重试连接到本地主机。

答案2

我遇到了完全相同的问题,结果发现我的.ssh目录中的读写权限太多。我运行了chmod 700 ~/.ssh,以确保.ssh目录权限如下所示:

drwx------ 15 username staff 510 Jun 2 01:08 .ssh

然后它就像魔法一样起作用了。

答案3

我改用 dsa 密钥解决了这个问题。我已经有一个了,所以我只是把它添加到 authorized_keys 中

$cat id_dsa.pub >> authorized_keys

如果您没有 dsa 密钥,您可以尝试创建一个,看看它是否有效:

$ssh-keygen -t dsa -P "" 

答案4

你有没有尝试过...

ssh-add $HOME/.ssh/id_rsa

我在使用 OS X 10.10 时也遇到了类似的问题,这个功能帮我解决了。

相关内容