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.comDNS関連トラブル調査に役立ちます。
接続確認
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 verifiedknown_hosts関連トラブルの調査に利用できます。
Host key verification failed調査
ホスト鍵不一致時にも詳細情報が表示されます。
どのホスト鍵が問題なのか確認できます。
SSH接続切断調査
接続途中で切断される場合にも有効です。
切断直前のログを確認できます。
タイムアウト調査
以下のようなエラーです。
Connection timed outどこで停止したのか確認できます。
ポート指定時の確認
SSHポート変更時です。
$ ssh -vvv -p 2222 user@server接続先ポートも確認できます。
秘密鍵指定時の確認
$ ssh -vvv -i key.pem user@serverAWSなどでよく利用します。
configファイル調査
設定反映確認にも利用できます。
Host *
ServerAliveInterval 60
読み込まれていることを確認できます。
ProxyJump利用時
踏み台サーバ経由接続でも役立ちます。
$ ssh -vvv targetどこで失敗しているか分かります。
scpで利用する
scpでも利用可能です。
$ scp -v file.txt user@server:/tmpファイル転送の問題を調査できます。
sftpでも利用する
$ sftp -v user@serverSFTP接続トラブルにも有効です。
ログを保存する方法
出力をファイルへ保存します。
$ ssh -vvv user@server 2> ssh.log後から詳細分析できます。
実務でよく確認する箇所
- Connection established
- Offering public key
- Authentication succeeded
- Authentication failed
- Host key verification
まずはここを確認します。
サーバログと組み合わせる
クライアント側だけでは不十分な場合があります。
サーバ側も確認します。
# journalctl -u sshd両方見ることで原因特定が容易になります。
実務での切り分け手順
- ssh -vvv実行
- 認証方式確認
- 秘密鍵確認
- known_hosts確認
- サーバログ確認
- sshd_config確認
ほとんどのSSHトラブルはこの流れで調査できます。
初心者が見落としやすいポイント
- 間違った秘密鍵を利用している
- 接続先ポートを間違えている
- ユーザー名が違う
- config設定が影響している
デバッグログで確認できます。
まとめ
SSHデバッグオプション(-v)は接続トラブル調査に欠かせない機能です。
特に実務では-vvvを利用して詳細な認証情報や接続状況を確認することが一般的です。
公開鍵認証エラー、known_hostsエラー、接続切断、タイムアウトなど、さまざまな問題の切り分けに役立ちます。
SSHトラブルが発生した場合は、まずssh -vvvを実行する習慣を身につけましょう。






