问题
我最近换了一台新的网络服务器。我之前一直使用 SSH 的识别文件连接之前的服务器,没有任何问题,但在新服务器上,我似乎无法使用识别文件进行身份验证。它似乎试图读取它,但随后它就转到密码身份验证。我相信我的文件是正确的——我已经设置了很多次了!
设置
我使用 在远程服务器上生成了标识文件ssh-keygen
,然后将私钥 (id_rsa) 复制回我的计算机~/.ssh/id_remote_private
。权限设置正确 (~/.ssh 和其中的文件上的权限为 700/600),本地和远程均如此。
连接日志
以下是没有密码的密钥的连接日志。另外,不确定这是否相关,但当我尝试使用密码时,我会收到一个额外的错误:PEM_read_PrivateKey failed
。
我在这里做错了什么?
本地用户$ssh -v -i $HOME/.ssh/id_remote_private -l 用户1234 123.123.123.123
OpenSSH_5.2p1,OpenSSL 0.9.8l 2009 年 11 月 5 日 debug1:读取配置数据/Users/local_user/.ssh/config debug1:读取配置数据/etc/ssh_config debug1:连接到123.123.123.123 [123.123.123.123]端口22。 debug1:连接已建立。 debug1:身份文件/Users/local_user/.ssh/id_remote_private 类型 -1 debug1:远程协议版本2.0,远程软件版本OpenSSH_4.3 调试1:匹配:OpenSSH_4.3 pat OpenSSH_4* debug1:启用协议 2.0 的兼容模式 debug1:本地版本字符串 SSH-2.0-OpenSSH_5.2 debug1:SSH2_MSG_KEXINIT 已发送 debug1: 收到 SSH2_MSG_KEXINIT debug1:kex:服务器->客户端aes128-ctr hmac-md5 none debug1:kex:客户端->服务器aes128-ctr hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) 已发送 调试1:期望SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT 已发送 debug1:期待 SSH2_MSG_KEX_DH_GEX_REPLY debug1:主机“123.123.123.123”已知并且与 RSA 主机密钥匹配。 debug1:在 /Users/user/.ssh/known_hosts:43 中找到密钥 debug1: ssh_rsa_verify: 签名正确 debug1: SSH2_MSG_NEWKEYS 已发送 debug1:期望 SSH2_MSG_NEWKEYS debug1: 已收到 SSH2_MSG_NEWKEYS debug1: SSH2_MSG_SERVICE_REQUEST 已发送 debug1: 已收到 SSH2_MSG_SERVICE_ACCEPT
debug1:可以继续的身份验证:publickey、gssapi-with-mic、password debug1:下一个认证方法:publickey debug1:尝试私钥:/Users/user/.idssh/id_remote_private debug1:读取PEM私钥完成:输入RSA debug1:可以继续的身份验证:publickey、gssapi-with-mic、password debug1:下一个身份验证方法:密码 [电子邮件保护]的密码:
答案1
如果您还没有完成,请将密钥的公共部分添加到~/.ssh/authorized_keys
远程端。
/var/log/auth.log
您还可以检查远端的内容以了解更多详细信息。