当linux系统通过linux连接时,有没有办法使用.ssh/authorized_keys获取相应的登录用户的电子邮件?
我尝试使用/var/log/auth.log中的内容,但找不到记录和.ssh/authorized_keys之间的直接关系。
提前谢谢。
发布于 2017-03-18 12:06:50
ssh公钥的最后一列是just a comment field,它不存在于用于登录的私钥中,也不在身份验证尝试期间发送到服务器的公钥中。
服务器授权密钥中的注释可以与客户端公钥中的注释完全不同。
您可以在authorized_keys和日志中找到密钥之间的连接,但是您需要首先使用
ssh-keygen -lf ~/.ssh/authorized_keys发布于 2017-07-22 01:43:39
可能是有人需要它。Next命令打印有关用于当前会话的ssh键的信息。键是从~/.ssh/authorized_keys的一个标准注释块中提取的。
例如,somebody@test.com将被打印为一个看起来像这样的键:cyb5OrLRv0VR6gZev8...KdECf7Q== somebody@test.com
命令:
export CURRENT_SSH_USER=$(grep $(grep $(grep '@'$(who -m | awk '{print $2}') <(ps -ef) | head -1 | awk '{print $3}')']: Accepted publickey for' /var/log/auth.log | head -1 | awk '{print $16}') <(cat ~/.ssh/authorized_keys | xargs -n1 -I% bash -c 'ssh-keygen -l -f /dev/stdin <<<"%"') | tail -1 | awk '{print $3}')上面的命令执行以下步骤:
who -m仅与stdin关联的主机名和用户。pts/2 )。命令。pts/2列表中搜索ps -ef并提取其pid。21996中的/var/log/auth.log中的如下一行:Jul 22 01:50:39 whatever-i-12345 sshd[21996]: Accepted publickey for ubuntu from 10.10.10.10 port 40411 ssh2: RSA SHA256:V4DD10NklAAAAAHNgxaurm1qaq/TOTejNjXMQABABAB。请确保启用了正确的日志记录。SHA256:V4DD10NklAAAAAHNgxaurm1qaq/TOTejNjXMQABABAB,它就会将其与/.ssh/authorized_keys中的行匹配,从注释块中检索有关名称的信息。备注:
仅在Ubuntu16.04.2LTS上测试(GNU/Linux4.4.0-62-通用x86_64)
https://stackoverflow.com/questions/42873749
复制相似问题