dim*_*mid 4 ssh key-authentication
当ssh我连接到服务器时,系统会提示我输入密码,尽管密钥的创建者尚未设置密码,并且该文件是纯文本私钥。
$ cat ~/.ssh/private.pem
-----BEGIN RSA PRIVATE KEY-----
MIIEowfIBAdfsdf34325...
-----END RSA PRIVATE KEY——
Run Code Online (Sandbox Code Playgroud)
我也尝试用
$ ssh-keygen -p -f ~/.ssh/private.pem -P ''
Bad passphrase.
$ ssh -vvvv -i ~/.ssh/private.pem HOST
debug2: key: /Users/.../private.pem (0x0), explicit
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug3: start over, passed a different list publickey,gssapi-keyex,gssapi-with-mic
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/.../private.pem
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/Users/.../private.pem':
debug2: no passphrase given, try next key
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Run Code Online (Sandbox Code Playgroud)
尝试arzyfex 的解决方案后, ssh-add返回 1 作为退出代码,没有任何解释。
$ ssh-agent bash
$ ssh-add ~/.ssh/private.pem
$ Enter passphrase for /Users/../private.pem:
1 $
Run Code Online (Sandbox Code Playgroud)
有上游错误讨论这个问题。目前,openssh 将在 openssl 中解析密钥的所有错误解释为“错误的密码”。该补丁可用,并且有望在下一个版本中使用。
具体到您的问题,它看起来像某种损坏的钥匙。你是如何得到的?从你的问题,我看到:
-----END RSA PRIVATE KEY——
Run Code Online (Sandbox Code Playgroud)
结尾肯定是无效的,它可能会被一些“聪明”的编辑器格式化。尝试将其修复回-----并再试一次。