题 Bash能告诉我哪个SSH公钥用于身份验证?


假设我想追踪我的 root 用户。他们每个人都有一个唯一的私钥,他们的公钥已存储在其中 /root/.ssh/authorized_keys

鉴于每个用户使用其唯一密钥登录,如何在BASH会话中告知哪个密钥用于进行身份验证?我在登录时尝试查看环境变量,但看不到任何与我的公钥相关的会话。


14
2017-09-20 10:06




稍微相关:在您的(openssh)sshd_config中设置LogLevel VERBOSE将记录用于登录的密钥的指纹。 - andol


答案:


您可以将用户名添加到公钥中 ~/.ssh/authorized_keys 在服务器上并将其导出为环境值:

environment="REALUSER=realusername" ssh-dsa AAA...

这将设置环境变量REALUSER,然后可以在bash中使用它。这只适用于 PermitUserEnvironment 设置为true sshd_config


21
2017-09-20 10:15



哇..真的吗?凉!你的意思是 ~/.ssh/authorized_keys?我从来不知道这件事。 - PP.
是的,就是这样。你可以在那里做很多有趣的事情 - man ssh 会在标题下告诉你更多 AUTHORIZED_KEYS FILE FORMAT。 - Jenny D
它可能取决于版本,但我不得不使用 man sshd 找到了 AUTHORIZED_KEYS FILE FORMAT 部分。 - Matthew Crumley
请注意,启用PermitUserEnvironment会产生一些安全隐患。读sshd - Florin Andrei