不接受私钥(OpenSSH 客户端调试)
默认情况下,大多数信息对用户是隐藏的。你可以使用 -v
开关获取连接尝试的详细日志,这通常会通过显示行为与预期不同的原因来查明问题。
假设你使用 ssh
(或其他 OpenSSH 客户端,如 sftp
或 scp
)连接到服务器 example.com
,服务器不接受你的私钥,服务器要求输入密码(或拒绝连接):
$ ssh example.com
user@example.com's password:
尝试使用 -vvv
开关运行 ssh
,它将写出所有调试消息。这将是很多信息,但过了一段时间,很容易理解:
$ ssh -vvv example.com
最常见的问题是密钥不在预期的位置。你可以期待出现类似的行,抱怨丢失的文件。检查你的文件是否真正被读取是一个良好的开端:
debug1: identity file /home/username/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/username/.ssh/id_dsa-cert type -1
我们可以继续进行身份验证部分。密钥可能会提供,但由于服务器配置问题而被服务器拒绝。日志可能看起来像这样:
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: Offering RSA public key: username@localhost
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password