Bash 能否告诉我使用哪个 SSH 公钥进行身份验证?

PP.*_*PP. 14 bash ssh-keys

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

鉴于每个用户都使用他们唯一的密钥登录,我如何从 BASH 会话中判断哪个密钥用于进行身份验证?我在登录时尝试查看环境变量,但看不到任何将我的会话与我的公钥相关联的内容。

Jen*_*y D 21

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

environment="REALUSER=realusername" ssh-dsa AAA...
Run Code Online (Sandbox Code Playgroud)

这将设置环境变量 REALUSER,然后可以在 bash 中使用它。这仅在PermitUserEnvironment设置为 true时才有效sshd_config

  • 是的,就是这样。你可以在那里做很多有趣的事情——`man ssh`会在`AUTHORIZED_KEYS FILE FORMAT`标题下告诉你更多信息。 (5认同)
  • 这可能取决于版本,但我必须使用 `man sshd` 来找到 `AUTHORIZED_KEYS FILE FORMAT` 部分。 (4认同)
  • 请注意,启用 PermitUserEnvironment 有一些安全隐患。阅读 man sshd (2认同)