在 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的主要内容,如果未能解决你的问题,请参考以下文章
使用ssh-keygenssh-copy-idSSH三步实现无密码登录