SSHログ

SSHサーバーは、ログイン試行などのイベントをログに記録します。

SSH ログはシステム ログに書き込まれます。SSHログを確認するには、システムログからSSH関連のレコードを抽出する必要があります。

ジャーナルctlコマンド

システムが Systemd を使用している場合は、journalctl コマンドを使用してログを表示できます。

$ journalctl -u ssh

Mar 25 20:25:36 web0 sshd[14144]: Accepted publickey for ubuntu from 10.103.160.144 port 59200 ssh2: RSA SHA256:l/zFNib1vJ+64nxLB4N9KaVhBEMf8arbWGxHQg01SW8
Mar 25 20:25:36 web0 sshd[14144]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)
Mar 25 20:39:12 web0 sshd[14885]: pam_unix(sshd:session): session closed for user ubuntu
...

上記の例では、返されたログの各行はログイン試行であり、失敗したログイン試行が最も古いものから最新のものまで順番に含まれています。 -u パラメータは、-u ssh が SSH ユニットを表示することを意味します。一部のディストリビューションでは、-u sshd と記述する必要があります。

-b0 パラメータを指定すると、最後のログイン以降のログを表示できます。

$ journalctl -t ssh -b0

-r パラメータは、最新のものを先頭にして、逆の順序で出力することを示します。

$ journalctl -t ssh -b0 -r

sinceパラメータとuntilパラメータはログの時間範囲を指定できます。

$ journalctl -u ssh --since yesterday # 查看昨天的日志
$ journalctl -u ssh --since -3d --until -2d # 查看三天前的日志
$ journalctl -u ssh --since -1h # 查看上个小时的日志
$ journalctl -u ssh --until "2022-03-12 07:00:00" # 查看截至到某个时间点的日志

リアルタイム ログを表示するには、次のコマンドを使用します。

$ journalctl -fu ssh

その他のコマンド

システムが Systemd を使用しない場合、sshd ログは /var/log/auth.log ファイルにあります。

$ sudo grep sshd /var/log/auth.log

次のコマンドは、sshd エントリの最後の 500 行を調べます。

$ sudo tail -n 500 /var/log/auth.log | grep sshd

-f パラメータを使用すると、ログをリアルタイムで追跡できます。

$ sudo tail -f -n 500 /var/log/auth.log | grep sshd

詳細を調べずに誰がシステムにログインしたかだけを確認したい場合は、lastlogコマンドを使用できます。

$lastlog

ログ設定

sshd 設定ファイル /etc/ssh/sshd_config でログ レベルを調整できます。

LogLevel VERBOSE

デバッグの目的で、ログを DEBUG に調整できます。

 LogLevel DEBUG

作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0