journalctlでSSH障害を調査する方法|ログから原因を特定する実践テクニック

目次
journalctlを使ってSSH障害を調査する方法を理解しよう
SSH接続に失敗した場合、多くの管理者はまずクライアント側のエラーメッセージを確認します。
しかし本当に重要なのはサーバ側ログです。
SSHサーバ(sshd)は接続状況や認証結果を詳細に記録しており、ログを確認することで原因を特定できるケースが非常に多くあります。
近年のAlmaLinux、Rocky Linux、RHELなどではsystemdが採用されており、journalctlコマンドを利用してログを確認するのが一般的です。
本記事ではjournalctlを利用したSSH障害の調査方法について解説します。
journalctlとは何か
journalctlはsystemd-journaldが保存するログを閲覧するためのコマンドです。
従来のsyslogやrsyslogとは異なり、systemd環境で標準的に利用されています。
Linuxサーバ管理者にとって必須のコマンドの一つです。
なぜSSH障害調査に重要なのか
SSHクライアント側のエラーメッセージだけでは原因が分からないことがあります。
例えば以下です。
Permission deniedこれだけでは認証失敗の詳細が分かりません。
サーバログを見ることで具体的な原因を確認できます。
SSHサービスログを確認する
最も基本的な確認方法です。
journalctl -u sshd# sshdサービスのログが表示されます。
最新ログだけ表示する
# journalctl -u sshd -n 50直近50行のみ表示します。
トラブル調査でよく利用します。
リアルタイム監視
接続試験を行いながら確認できます。
# journalctl -u sshd -f非常に便利なオプションです。
接続成功時のログ例
Accepted publickey for user
from 192.168.1.100公開鍵認証成功を意味します。
パスワード認証成功例
Accepted password for userパスワード認証でログインしています。
認証失敗例
Failed password for userパスワード認証失敗です。
公開鍵認証失敗例
Failed publickey for user公開鍵認証に失敗しています。
authorized_keysなどを確認します。
Permission denied調査
以下のエラー発生時です。
Permission denied (publickey)journalctlを見ることで認証失敗理由が分かります。
不正アクセス確認
SSHへの攻撃も確認できます。
Invalid user admin存在しないユーザーへの攻撃です。
総当たり攻撃の例
Failed password
Failed password
Failed password短時間で大量発生している場合はブルートフォース攻撃の可能性があります。
特定期間だけ表示する
今日のログです。
# journalctl -u sshd --since today調査範囲を絞れます。
時間指定する
# journalctl -u sshd --since "2026-06-16 10:00"障害発生時刻周辺を調査できます。
終了時刻も指定する
# journalctl -u sshd --since "10:00" --until "11:00"特定時間帯だけ表示できます。
今日の接続履歴確認
ログイン状況の確認にも利用できます。
運用監査でも活用されます。
ユーザー名で検索する
grepを組み合わせます。
# journalctl -u sshd | grep user特定ユーザーの接続履歴を確認できます。
IPアドレスで検索する
# journalctl -u sshd | grep 192.168.1.100接続元の追跡が可能です。
sshd起動エラー調査
設定ミス時によく利用します。
# journalctl -xe詳細エラーを確認できます。
sshd起動失敗例
Failed to start OpenSSH
server daemon設定ファイルの誤りなどが考えられます。
設定変更後の確認
設定変更後は以下を確認します。
# sshd -tその後journalctlを確認します。
SSH切断調査
途中で接続が切れる場合にも利用できます。
切断時刻付近のログを確認します。
ポート変更時の調査
SSHポートを変更した場合です。
Port 2222sshd起動状況やエラー内容を確認できます。
SELinux関連調査
SELinuxが原因の場合もあります。
journalctlだけではなく以下も確認します。
# ausearch -m AVC拒否ログを確認できます。
firewalldとの組み合わせ
接続できない場合は以下も確認します。
# journalctl -u firewalldファイアウォール関連の変更履歴を確認できます。
ログ保存の注意点
環境によってはログ保存期間が限られています。
障害発生後は早めに確認しましょう。
従来のログファイルとの違い
従来は以下を確認していました。
/var/log/secure現在でも利用される場合があります。
ただしsystemd環境ではjournalctlが基本です。
実務でよく使うコマンド
# journalctl -u sshd
# journalctl -u sshd -f
# journalctl -u sshd -n 100まずはこの3つを覚えましょう。
実務での調査手順
- ssh -vvv実行
- journalctl -u sshd確認
- 認証失敗内容確認
- sshd_config確認
- SELinux確認
- firewalld確認
効率的に原因を特定できます。
よくある原因
- 公開鍵認証失敗
- ユーザー名間違い
- authorized_keys不備
- 権限設定ミス
- SELinux制限
- firewalld設定ミス
ログから確認できます。
まとめ
journalctlはSSH障害調査において非常に重要なツールです。
クライアント側のエラーメッセージだけでは分からない認証失敗や設定ミスを詳細に確認できます。
特にjournalctl -u sshdとjournalctl -u sshd -fは実務で頻繁に利用されるため、確実に使えるようにしておきましょう。
SSHトラブル発生時は、まずサーバログを確認する習慣を身につけることが重要です。






