我最近切换到一个新的Web服务器。 我一直在使用SSH识别文件连接到以前的服务器没有问题,但在新的服务器上,我似乎无法使用识别文件进行身份validation。 它看起来像试图读取它,但它只是移动到密码authentication。 我相信我的文件是正确的 – 我已经设置了这么多次!
我使用ssh-keygen在远程服务器上生成了标识文件,然后将私钥(id_rsa)作为~/.ssh/id_remote_private复制回到我的电脑。 权限设置正确(〜/ .ssh上的700/600和里面的文件),无论是本地和远程。
下面是没有密码的密钥的连接日志。 此外,不知道这是否相关,但是当我试图使用密码,我会得到一个额外的错误: PEM_read_PrivateKey failed 。
我在这里做错了什么?
local_user $ ssh -v -i $ HOME / .ssh / id_remote_private -l user1234 123.123.123.123
OpenSSH_5.2p1,OpenSSL 0.9.8l 2009年11月5日 debug1:读取configuration数据/Users/local_user/.ssh/config debug1:读取configuration数据/ etc / ssh_config debug1:连接到123.123.123.123 [123.123.123.123]端口22。 debug1:build立连接。 debug1:身份文件/Users/local_user/.ssh/id_remote_private type -1 debug1:远程协议版本2.0,远程软件版本OpenSSH_4.3 debug1:match:OpenSSH_4.3 pat OpenSSH_4 * debug1:启用协议2.0的兼容模式 debug1:本地版本stringSSH-2.0-OpenSSH_5.2 debug1:发送SSH2_MSG_KEXINIT debugging1:收到SSH2_MSG_KEXINIT debug1:kex:server-> client aes128-ctr hmac-md5 none debug1:kex:client-> server aes128-ctr hmac-md5 none debug1:发送了SSH2_MSG_KEX_DH_GEX_REQUEST(1024 <1024 <8192) debug1:期待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:find/Users/user/.ssh/known_hosts:43中的密钥 debug1:ssh_rsa_verify:签名正确 debug1:发送了SSH2_MSG_NEWKEYS debug1:期待SSH2_MSG_NEWKEYS debug1:收到SSH2_MSG_NEWKEYS debugging1:发送了SSH2_MSG_SERVICE_REQUEST debug1:收到SSH2_MSG_SERVICE_ACCEPT
debug1:可以继续的authentication:publickey,gssapi-with-mic,密码 debug1:下一个validation方法:publickey debug1:尝试私钥:/Users/user/.idssh/id_remote_private debug1:读取完成的PEM私钥:键入RSA debug1:可以继续的authentication:publickey,gssapi-with-mic,密码 debug1:下一个validation方法:密码 [email protected]的密码:
如果还没有完成,请将密钥的公开部分添加到远程端的~/.ssh/authorized_keys 。
您还可以查看远程端的/var/log/auth.log内容以获取更多详细信息。