如何找出用于登录 SSH 会话的密钥

geo*_*xis 5 ssh bash

我想知道登录 SSH 会话时使用了哪个密钥。我想将密钥与本地数据库相关联,并将电子邮件发送到与密钥对应的地址。

第一步是找出正在使用的密钥。

use*_*517 6

为此,您必须将LogLevelsshd 提高到VERBOSE

logLevel VERBOSE
Run Code Online (Sandbox Code Playgroud)

/etc/ssh/sshd_config重新启动 sshd。这将导致 sshd 将用于登录的密钥的指纹记录到配置的日志文件(/var/log/secure、/var/log/auth 等)中。您将收到类似这样的消息

Dec  9 11:47:15 host sshd[32282]: Found matching RSA key: 54:d2:06:cf:85:ec:89:96:3c:a8:73:c7:a1:30:c2:8b
Run Code Online (Sandbox Code Playgroud)

54:d2:06:cf:85:ec:89:96:3c:a8:73:c7:a1:30:c2:8b是用于登录的密钥的指纹。

您可以使用以下命令获取特定密钥的指纹

ssh-keygen -lf <keyfile> 
Run Code Online (Sandbox Code Playgroud)

其中 keyfile 是公钥

sshkeygen -lf /tmp/test.key
2048 21:02:4b:82:83:62:49:d7:5f:e0:8f:cf:ec:a3:5f:38 /tmp/test.key (RSA)
Run Code Online (Sandbox Code Playgroud)


cjc*_*cjc 5

您将需要打开日志记录。

在客户端,“ssh -v”将使用哪个私钥。

在服务器端,默认日志级别将仅显示使用了公钥(而不是密码身份验证)。您需要将 sshd_config 中的日志记录级别设置为至少 VERBOSE。