Linuxサーバーを運用していると、こんな心配をしたことはありませんか?
- 「もしかして、知らない間に誰かがログインしてない?」
- 「不正アクセスされても気づけるかな…」
- 「セキュリティの状況をちゃんと把握したい」
SSH(Secure Shell)でサーバーにアクセスできるということは、とても便利な反面、セキュリティのリスクもあるんです。
でも安心してください!Linuxには、SSHのアクセス履歴をしっかりと記録する仕組みが最初から備わっています。
この記事では、LinuxでSSHアクセス履歴を確認する方法を、初心者の方にも分かりやすく説明していきます。
「ログって難しそう…」と思っている方でも大丈夫。一緒に学んでいきましょう!
SSHアクセスのログはどこに保存されているの?

Linuxでは、SSHのアクセス記録が自動的にログファイルに保存されています。
ログファイルの場所
Linuxの種類 | ログファイルの場所 |
---|---|
Debian/Ubuntu系 | /var/log/auth.log |
RedHat/CentOS/RHEL系 | /var/log/secure |
確認方法
自分のサーバーがどちらか分からない場合は:
# Debian/Ubuntu系かチェック
ls /var/log/auth.log
# RedHat/CentOS系かチェック
ls /var/log/secure
どちらかのファイルが存在すれば、それがあなたのサーバーのSSHログファイルです。
基本のログ確認コマンドを覚えよう
では、実際にSSHのアクセス履歴を見てみましょう。
Debian/Ubuntu系の場合
sudo cat /var/log/auth.log | grep sshd
RedHat/CentOS系の場合
sudo cat /var/log/secure | grep sshd
コマンドの意味
sudo
:管理者権限でファイルを読み取りcat
:ファイルの内容を表示grep sshd
:SSH関連の行だけを抽出
このコマンドを実行すると、SSH関連の接続・切断・認証失敗などのログが一覧で表示されます。
ちょっとしたコツ: 情報が多すぎる場合は、| tail -20
を付けると最新の20行だけを表示できます。
この章のまとめ: grep sshd
でSSH関連のログだけを抽出できる。次は、ログの読み方を覚えてみましょう!
ログの読み方・重要なキーワードを覚えよう

ログには色々な情報が含まれていますが、特に重要なキーワードを覚えておきましょう。
よく見るログの例
Jan 23 14:30:15 server1 sshd[1234]: Accepted password for user1 from 192.168.1.10 port 54321 ssh2
Jan 23 14:35:22 server1 sshd[1235]: Failed password for invalid user root from 203.0.113.5 port 34567 ssh2
Jan 23 14:40:10 server1 sshd[1234]: Disconnected from 192.168.1.10 port 54321
重要なキーワード一覧
キーワード | 意味 | 注意レベル |
---|---|---|
Accepted password | パスワード認証でログイン成功 | 正常(でも確認は必要) |
Failed password | 認証失敗 | 要注意(不正アクセスの可能性) |
Invalid user | 存在しないユーザー名でアクセス試行 | 危険(攻撃の可能性大) |
Disconnected | セッション終了 | 正常 |
読み方のコツ
- 日時:いつアクセスがあったか
- IPアドレス:どこからアクセスされたか
- ユーザー名:誰がアクセスしようとしたか
- 結果:成功したか失敗したか
この章のまとめ: 「Failed password」や「Invalid user」が多い場合は要注意!次は、もっと簡単にログイン履歴を確認する方法をご紹介します。
最近のSSHログイン履歴を簡単に確認する方法
「ログが読みにくい…」という場合は、last
コマンドが便利です。
last -ai | grep ssh
このコマンドの便利な点
- ユーザー名、IPアドレス、ログイン日時が分かりやすく表示される
- 過去のログイン履歴を時系列順で確認できる
- ログイン時間の長さも分かる
表示例
user1 ssh:192.168.1.10 Tue Jan 23 14:30 - 15:45 (01:15)
admin ssh:192.168.1.20 Mon Jan 22 09:00 - 18:30 (09:30)
応用編: 特定のユーザーだけを確認したい場合:
last user1 | grep ssh
今現在ログインしているユーザーを確認しよう

「今、誰がサーバーにログインしているんだろう?」という時に使えるコマンドです。
現在のログインユーザーを確認
who
より詳しい情報を確認
w
表示される情報
- ユーザー名:誰がログインしているか
- ターミナル:どの接続経路か
- ログイン時刻:いつからログインしているか
- IPアドレス:どこからアクセスしているか
- 実行中のコマンド:何をしているか(
w
コマンドの場合)
セキュリティチェックのポイント:
- 知らないIPアドレスからのログインがないか
- 見覚えのないユーザー名がないか
- 不自然な時間のログインがないか
ログイン失敗回数をカウントして攻撃を検知しよう

「最近、ログイン失敗が多いような気がする…」という時は、数値で確認してみましょう。
ログイン失敗回数をカウント
grep "Failed password" /var/log/auth.log | wc -l
特定のIPアドレスからの攻撃回数をチェック
grep "Failed password" /var/log/auth.log | grep "203.0.113.5" | wc -l
今日の失敗回数だけを確認
grep "Failed password" /var/log/auth.log | grep "$(date +%b\ %d)" | wc -l
危険度の目安
- 1日に10回以下:正常範囲(タイプミスなど)
- 1日に50回以上:要注意(組織的な攻撃の可能性)
- 1日に100回以上:危険(ブルートフォース攻撃の可能性大)
失敗回数が異常に多い場合は、fail2banなどの自動ブロックツールの導入を検討しましょう。
リアルタイムでSSHログを監視しよう
「攻撃を受けている最中に、すぐに気づきたい!」という場合は、リアルタイム監視が有効です。
リアルタイムログ監視コマンド
sudo tail -f /var/log/auth.log | grep sshd
このコマンドの便利な点
- リアルタイムでログが画面に流れる
- 怪しい接続を即座に発見できる
- Ctrl+Cで監視を停止できる
応用編:失敗ログだけを監視
sudo tail -f /var/log/auth.log | grep "Failed password"
監視中に注意すべきサイン
- 短時間に大量の「Failed password」
- 見覚えのないIPアドレスからのアクセス
- 存在しないユーザー名での試行
実用的なヒント: tmuxやscreenを使えば、監視を背景で続けながら他の作業もできます。
過去のログも忘れずにチェックしよう
Linuxでは、ログファイルが大きくなりすぎないように、定期的に古いログが圧縮保存される仕組みがあります。
ログローテーションとは
- 現在のログ:
/var/log/auth.log
- 1つ前のログ:
/var/log/auth.log.1
- 2つ前のログ:
/var/log/auth.log.2.gz
(圧縮済み)
圧縮されたログを確認する方法
zcat /var/log/auth.log.2.gz | grep sshd
過去1週間のログをまとめて確認
# 現在のログ
cat /var/log/auth.log | grep sshd
# 1つ前のログ
cat /var/log/auth.log.1 | grep sshd
# 圧縮されたログ
zcat /var/log/auth.log.*.gz | grep sshd
まとめ
SSHアクセス履歴の確認は、サーバーを守るうえで欠かせない基本中の基本です。
日常的にログを確認する習慣を持つことで、不審なアクセスを早期に発見し、適切に対処できる体制が整います。
ポイントおさらい
- SSHログは決まった場所に保存されている(
/var/log/auth.log
または/var/log/secure
) grep sshd
でフィルタすると接続情報が見やすいlast
コマンドでログイン履歴を分かりやすく表示who
やw
コマンドで現在のログイン状況をチェック- 失敗回数をカウントして攻撃規模を把握
tail -f
でリアルタイム監視も可能- 過去の圧縮ログも
zcat
で確認できる
コメント