有什麼辦法可以使用.ssh/authorized_keys
來獲得相應的登錄用戶的電子郵件,當linux系統通過id_rsa.pub
連接時?監控ssh連接並從authorized_keys獲取登錄用戶信息
我嘗試使用/var/log/auth.log
中的內容,但找不到記錄和.ssh/authorized_keys
之間的直接關係。
在此先感謝。
有什麼辦法可以使用.ssh/authorized_keys
來獲得相應的登錄用戶的電子郵件,當linux系統通過id_rsa.pub
連接時?監控ssh連接並從authorized_keys獲取登錄用戶信息
我嘗試使用/var/log/auth.log
中的內容,但找不到記錄和.ssh/authorized_keys
之間的直接關係。
在此先感謝。
ssh公鑰的最後一列是just a comment field,它不存在於用於登錄的私鑰中,也不存在於認證嘗試期間發送給服務器的公鑰中。
服務器授權密鑰中的註釋可能與客戶端公鑰中的註釋完全不同。
你可以在authorized_keys
和日誌中的鍵之間的連接,但你需要將按鍵轉換成指紋首先使用
ssh-keygen -lf ~/.ssh/authorized_keys
可能是有人需要它。 Next命令打印有關用於當前會話的ssh密鑰的信息。密鑰取自~/.ssh/authorized_keys
的標準註釋塊。
例如,[email protected]
會被打印,看起來這樣的關鍵:cyb5OrLRv0VR6gZev8...KdECf7Q== [email protected]
命令:
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
只有主機名和用戶關聯w ith stdin。pts/2
。命令。ps -ef
中搜索pts/2
並提取其pid。尋找pid,例如21996
in /var/log/auth.log
in this like this: 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
的行匹配,從註釋塊中檢索有關名稱的信息。
注:
僅在Ubuntu 16.04.2 LTS(GNU/Linux的4.4.0-62-x86_64的仿製)
測試這是題外話。 Stackoverflow用於編程問題。嘗試superuser.com –