为什么我的 SSH 密钥有时才有效?

为什么我的 SSH 密钥有时才有效?

我已经设置了 SSH 密钥和 Gentoo Keychain,以便快速轻松地登录我有时访问的服务器。

奇怪的是,基于密钥的登录有时会起作用,而其他时候则需要密码。这甚至可能发生在同一个终端/终端会话中(也就是说,我打开一个终端,通过 ssh 连接到该服务器,使用 SSH 密钥登录可以正常工作。几个小时后,连接断开,我只需返回本地命令历史记录中的一行并尝试打开新的 SSH 连接,但这次我需要输入密码。下次我在同一个终端中重复此过程时,密钥再次按预期工作。)

登录失败的详细日志:

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/db/.ssh/id_rsa RSA SHA256:6zeoJz3P+3s6pfwTGPG8Rmc8kcJ8CKHlJnm54ugj1K4 agent
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /Users/db/.ssh/id_ecdsa
debug1: Trying private key: /Users/db/.ssh/id_ed25519
debug1: Trying private key: /Users/db/.ssh/id_xmss
debug1: Next authentication method: password

这里发生了什么?

更新:

这是同一客户端一小时后连接到同一服务器的日志。这次密钥交换成功了。

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/db/.ssh/id_rsa RSA SHA256:6zeoJz3P+3s6pfwTGPG8Rmc8kcJ8CKHlJnm54ugj1K4 agent
debug1: Server accepts key: /Users/db/.ssh/id_rsa RSA SHA256:6zeoJz3P+3s6pfwTGPG8Rmc8kcJ8CKHlJnm54ugj1K4 agent
debug1: Authentication succeeded (publickey).
Authenticated to server.com ([123.456.78.90]:22).
debug1: Local connections to LOCALHOST:5870 forwarded to remote address smtp.server.com:587
debug1: Local forwarding listening on ::1 port 5870.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 5870.
debug1: channel 1: new [port listener]
debug1: channel 2: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: exec
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env LC_CTYPE = UTF-8
Linux triton 4.9.0-11-686-pae #1 SMP Debian 4.9.189-3+deb9u2 (2019-11-11) i686

答案1

我搞明白了。服务器使用 Kerberos 挂载我的主目录。当我使用密码登录时,会发出一张新的 Kerberos 票证,但它只持续 24 小时。在这 24 小时内,我可以使用 ssh 密钥登录(因为我的主目录已挂载,因此 sshd 可以读取我的 ssh 密钥),但 24 小时后,我的主目录被卸载,当我尝试打开 ssh 连接时,sshd 无法读取我的 ssh 密钥。

相关内容