Bash可以告诉我使用哪个SSH公钥进行身份验证吗?


14

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

假设每个用户都使用其唯一密钥登录,我如何从BASH会话中得知哪个密钥用于身份验证?登录时,我尝试查看环境变量,但是看不到任何将会话与公钥相关联的信息。


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

Answers:


21

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

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

这将设置环境变量REALUSER,然后可以在bash中使用它。仅当PermitUserEnvironmentsshd_config


哇....真的吗?凉!你的意思是~/.ssh/authorized_keys?我从来不知道
PP。

5
是的,就是这样。您可以在那里做很多有趣的事情- man ssh在标题下会告诉您更多信息AUTHORIZED_KEYS FILE FORMAT
珍妮D

4
它可能取决于版本,但是我不得不使用它man sshd来查找该AUTHORIZED_KEYS FILE FORMAT部分。
马修·克鲁姆利

2
请注意,启用PermitUserEnvironment会带来一些安全隐患。阅读man sshd
Florin Andrei
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.