获取 ssh 中已知公钥的指纹

原因

服务器上有异常登录现象,通过 /var/log/auth.log 找到了登录记录和公钥的指纹,但是不知道和哪个公钥对应,想要把这个公钥找出来。

步骤

参考 https://serverfault.com/questions/291763/is-it-possible-to-get-openssh-to-log-the-public-key-that-was-used-in-authenticat

while IFS=$'\n' read key; do ssh-keygen -lf <(echo $key); done < ~/.ssh/authorized_keys

或者

cat ~/.ssh/authorized_keys | while IFS=$'\n' read key; do ssh-keygen -lf <(echo $key); done

这种写法是不行的,会无限循环,而且永远只能读到第一行:

while IFS=$'\n' read key < ~/.ssh/authorized_keys; do ssh-keygen -lf <(echo $key); done