我有问题使用授权密钥SSHlogin到远程服务器。 我收到的错误消息如下所示:
OpenSSH_5.2p1, OpenSSL 0.9.8r 8 Feb 2011 debug1: Reading configuration data /etc/ssh_config debug1: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to xx.xx.xx [xxx.xx.xx.xx] port 22. debug1: Connection established. debug3: Not a RSA1 key file /Users/bfenker/.ssh/id_rsa. debug2: key_type_from_name: unknown key type '-----BEGIN' debug3: key_read: missing keytype debug3: key_read: missing whitespace ... debug2: key_type_from_name: unknown key type '-----END' debug3: key_read: missing keytype debug1: identity file /Users/bfenker/.ssh/id_rsa type 1 ssh_exchange_identification: Connection closed by remote host
本网站上的其他问题也发布了类似的问题,解决scheme通常是仔细检查客户端的所有权限,我已经这样做了:
drwxr-xr-x+ 23 bfenker staff 782 May 8 11:02 bfenker drwx------ 8 bfenker staff 272 May 8 10:05 .ssh -rw------- 1 bfenker staff 1675 May 8 09:51 id_rsa -rw-r--r-- 1 bfenker staff 418 May 8 09:51 id_rsa.pub -rw------- 1 bfenker staff 999 May 8 09:46 identity -rw-r--r-- 1 bfenker staff 663 May 8 09:46 identity.pub -rw-r--r-- 1 bfenker staff 416 May 8 09:06 known_hosts
我能够使用授权密钥SSH到另一台服务器,并从这台服务器SSH到我想要的服务器。 这是一个可以解决的解决方法,我正在尝试解决,但我认为这也表明,我的客户端和服务器都设置好。
请注意,当我SSH成功地到不同的服务器,我得到相同的错误消息,但似乎恢复开始与行:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3 debug1: match: OpenSSH_5.3 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0
有谁知道这是为什么在某些情况下,但不是在我想要的情况下? 任何其他build议将不胜感激!
您的SSH密钥存储格式错误。 OpenSSH使用放在一行中的密钥。 你需要ssh-keygen和-i和-m选项,参见man ssh-keygen 。 可能是其中之一:
ssh-keygen -m RFC4716 -i -f /Users/bfenker/.ssh/id_rsa
使用输出作为新的密钥文件( ssh-keygen ... >newkeyfile )。
编辑1:
请注意这一点:“这个选项将读取一个未encryption的私人(或公共)密钥文件”
所以可能该文件必须改变为一个没有密码的程序,理解这种格式。
Necroquestion! 基于这个事实,你可以使用这个密钥login到另一个服务器@ michael-hampton是正确的path:目标服务器上有一些东西(防火墙/ TCP包装/ sshdconfiguration)拒绝访问。 所有这些关于不正确的键格式的讨论都是基于错误解释debugging信息的红鲱鱼。 该线
debug1: identity file /Users/bfenker/.ssh/id_rsa type 1
表明ssh能够理解这个关键。
我的MacBook Pro与MacOS 10.7.5有同样的问题。 我的密钥没有什么问题,只是它们被encryption(使用密码,就像你应该这样做),而不是被ssh正确encryption。 看来ssh-agent有问题。
根据这篇文章 ,试试这个:
将/usr/bin/ssh-agent放入您的login项目(系统首选项 – >用户和组 – >select用户 – >login项目)。 在对话框中导航到/usr/bin非常困难,所以文章build议在你的主目录( ln -s /usr/bin/ssh-agent )中创build一个链接,在login项目。
退出Terminal.app
重新启动机器。
打开terminal,然后重试你的ssh命令。
为我工作(至less有一次)。
首先你应该检查你的sshd日志。 即
less /var/log/secure
取决于具有安全日志的unix分发文件可能有所不同。 但是当你发现的时候,应该告诉你不能login的原因。