SSHデバッグオプション(-v)の使い方|接続トラブルを調査するための基本テクニック

SSHデバッグオプション(-v)の使い方

SSHデバッグオプション(-v)を活用して接続トラブルを解決しよう

SSH接続で問題が発生した場合、多くの管理者が最初に利用するのがデバッグオプションです。

SSHコマンドには通信や認証の詳細な情報を表示する機能が用意されており、接続できない原因の特定に大きく役立ちます。

特に公開鍵認証の失敗や接続途中での切断など、表面的なエラーメッセージだけでは分からない問題を調査する際に必須の機能です。

本記事ではSSHデバッグオプション(-v)の使い方と、実務でよく利用する確認ポイントについて解説します。

SSHデバッグオプションとは

SSHコマンドには詳細なログを表示するオプションがあります。

基本形は以下です。

$ ssh -v user@server

接続処理の内部動作が表示されます。

なぜデバッグが必要なのか

通常のSSHエラーは情報が少ない場合があります。

例えば以下です。

Permission denied (publickey)

これだけでは原因を特定できません。

デバッグ出力を確認することで詳細な原因が分かります。

-vオプションの意味

verbose(詳細表示)の略です。

SSH内部の処理を表示します。

$ ssh -v user@server

まず最初に試すべきオプションです。

-vvオプション

さらに詳細な情報を表示します。

$ ssh -vv user@server

認証処理の流れをより詳しく確認できます。

-vvvオプション

最も詳細なデバッグモードです。

$ ssh -vvv user@server

実務ではこのオプションを利用することが多いです。

出力例

接続開始時の例です。

OpenSSH_9.0
debug1: Reading configuration data
debug1: Connecting to 192.168.1.100

設定読込や接続開始が確認できます。

設定ファイル読込確認

以下のような表示があります。

Reading configuration data
~/.ssh/config

どの設定ファイルが利用されているか確認できます。

DNS解決確認

ホスト名利用時は名前解決も確認できます。

Connecting to server.example.com

DNS関連トラブル調査に役立ちます。

接続確認

TCP接続成功時です。

Connection established

ネットワーク疎通が成功しています。

認証方式確認

利用可能な認証方式が表示されます。

Authentications that can continue:
publickey,password

サーバ側設定を確認できます。

公開鍵認証確認

利用される秘密鍵が表示されます。

Offering public key:
~/.ssh/id_ed25519

どの鍵を送信しているか分かります。

認証成功例

Authentication succeeded
(publickey)

公開鍵認証成功です。

認証失敗例

Permission denied
(publickey)

認証に失敗しています。

秘密鍵やauthorized_keysを確認します。

秘密鍵確認に役立つ

複数鍵を利用している環境では非常に重要です。

例えば以下が確認できます。

Trying private key:
id_rsa

Trying private key:
id_ed25519

利用された鍵が分かります。

known_hosts確認

ホスト鍵検証も表示されます。

Host key verified

known_hosts関連トラブルの調査に利用できます。

Host key verification failed調査

ホスト鍵不一致時にも詳細情報が表示されます。

どのホスト鍵が問題なのか確認できます。

SSH接続切断調査

接続途中で切断される場合にも有効です。

切断直前のログを確認できます。

タイムアウト調査

以下のようなエラーです。

Connection timed out

どこで停止したのか確認できます。

ポート指定時の確認

SSHポート変更時です。

$ ssh -vvv -p 2222 user@server

接続先ポートも確認できます。

秘密鍵指定時の確認

$ ssh -vvv -i key.pem user@server

AWSなどでよく利用します。

configファイル調査

設定反映確認にも利用できます。

Host *
ServerAliveInterval 60

読み込まれていることを確認できます。

ProxyJump利用時

踏み台サーバ経由接続でも役立ちます。

$ ssh -vvv target

どこで失敗しているか分かります。

scpで利用する

scpでも利用可能です。

$ scp -v file.txt user@server:/tmp

ファイル転送の問題を調査できます。

sftpでも利用する

$ sftp -v user@server

SFTP接続トラブルにも有効です。

ログを保存する方法

出力をファイルへ保存します。

$ ssh -vvv user@server 2> ssh.log

後から詳細分析できます。

実務でよく確認する箇所

  • Connection established
  • Offering public key
  • Authentication succeeded
  • Authentication failed
  • Host key verification

まずはここを確認します。

サーバログと組み合わせる

クライアント側だけでは不十分な場合があります。

サーバ側も確認します。

# journalctl -u sshd

両方見ることで原因特定が容易になります。

実務での切り分け手順

  1. ssh -vvv実行
  2. 認証方式確認
  3. 秘密鍵確認
  4. known_hosts確認
  5. サーバログ確認
  6. sshd_config確認

ほとんどのSSHトラブルはこの流れで調査できます。

初心者が見落としやすいポイント

  • 間違った秘密鍵を利用している
  • 接続先ポートを間違えている
  • ユーザー名が違う
  • config設定が影響している

デバッグログで確認できます。

まとめ

SSHデバッグオプション(-v)は接続トラブル調査に欠かせない機能です。

特に実務では-vvvを利用して詳細な認証情報や接続状況を確認することが一般的です。

公開鍵認証エラー、known_hostsエラー、接続切断、タイムアウトなど、さまざまな問題の切り分けに役立ちます。

SSHトラブルが発生した場合は、まずssh -vvvを実行する習慣を身につけましょう。