在 OS X 上设置无密码 ssh 到 localhost

Posted

技术标签:

【中文标题】在 OS X 上设置无密码 ssh 到 localhost【英文标题】:Setup passphraseless ssh to localhost on OS X 【发布时间】:2011-10-31 08:42:16 【问题描述】:

我正在尝试让 Hadoop 的伪分布式操作示例 (http://hadoop.apache.org/common/docs/stable/single_node_setup.html) 在 OS X Lion 上运行,但无法获取 ssh无需密码即可工作。

说明如下:

设置无密码 ssh

现在检查您是否可以在没有密码的情况下通过 ssh 连接到 localhost:$ ssh 本地主机

连接被拒绝:

archos:hadoop-0.20.203.0 travis$ ssh localhost
ssh: connect to host localhost port 22: Connection refused

如果没有密码就无法 ssh 到 localhost,请执行 以下命令:

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa   
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

在这一步之后,我仍然被拒绝连接。有什么想法???

【问题讨论】:

ls /System/Library/LaunchDaemons/ | grep ssh的输出是什么 【参考方案1】:

听起来您没有启用 SSH。应该在网络设置控制面板的某处。

【讨论】:

知道了!感谢您为我指明正确的方向。系统偏好设置 -> 共享 -> 需要启用远程登录。【参考方案2】:

您转到“系统偏好设置 > 共享 > 远程访问”,就会出现授权用户列表。将其更改为“所有用户”。

这就解决了这个问题。

【讨论】:

【参考方案3】:

检查 .ssh 目录的权限。一些 ssh 实现要求目录是 chmod 700。否则,他们会忽略它。

另外,检查

的输出
ssh -v localhost

查看 ssh 客户端如何尝试连接。输出非常详细,可以帮助您确定是否是身份验证问题。

【讨论】:

【参考方案4】:

我遇到了同样的问题。 请检查 ssh 服务器是否正在运行。

如果是,请打开 /etc/init.d/ssh_config/etc/init.d/sshd_config 文件。问题是服务器在不同的端口上运行,而客户端指向不同的端口。

在此之前请确保已安装 openssh-server 和客户端。

【讨论】:

【参考方案5】:

我遇到了同样的问题,我通过以下方式解决了它:

    SSH 已激活。

    ssh -v localhost(如Herko 所述) 在输出中,我发现不支持 DSA 的身份验证方法。

debug1:跳过 ssh-dss 密钥 /Users/john/.ssh/id_dsa - 不在 PubkeyAcceptedKeyTypes 中

    我只是重新生成 ECDSA 密钥并删除 DSA 密钥对。

    密钥生成后,Hadoop 文档中给出的过程成立。

因此,检查 Openssh 配置是否支持身份验证方法很重要。

【讨论】:

以上是关于在 OS X 上设置无密码 ssh 到 localhost的主要内容,如果未能解决你的问题,请参考以下文章

linux下怎样设置ssh无密码登录

使用 subprocess 模块访问无密码 SSH 设备

使用ssh-keygenssh-copy-idSSH三步实现无密码登录

linux下怎样设置ssh无密码登录

无法设置无密码登录到本地主机,也无法使用密码 ssh 到本地主机

自动在ssh上输入密码:: dont想做ssh-keygen :: spawn不能正常工作