Cisco SSHに接続できない時の切り分け手順まとめ
ネットワークエンジニアとして現場で何度もハマってきた「CiscoのSSHが繋がらない」問題を、症状別の切り分け手順としてまとめました。深夜のメンテで焦らないためのチェックリストとして使ってください。
まずは症状で原因を絞る
| 症状 | 疑うべき原因 | 最初に打つコマンド |
|---|---|---|
| pingも通らない | L3疎通・ACL・経路 |
show ip route / show access-lists
|
| pingは通るがSSHだけNG | VTY設定 / SSHサービス未起動 |
show ip ssh / show line vty 0 4
|
| Connection refused が即返る | crypto key 未生成 / SSH無効 | show crypto key mypubkey rsa |
| no matching key exchange method | クライアント・機器でアルゴリズム不一致 | show ip ssh |
| aborted, error status 0 | 認証即切断 / login local 不整合 |
show users / debug ip ssh
|
pingが通るのにSSHだけNG、というケースが現場では一番多いです。原因の8割はVTY設定かcrypto key絡みなので、そこから優先的に確認します。
機器側の必須5点セット
CiscoでSSHを動かすには、以下が全部揃っている必要があります。
hostname CORE-SW01
ip domain-name example.local
crypto key generate rsa modulus 2048
ip ssh version 2
!
line vty 0 4
transport input ssh
login local
line vty 5 15
transport input ssh
login local
!
username admin privilege 15 secret StrongPass!23
ハマりどころは2つ。
- hostname → ip domain-name → crypto key generate の順を守る。順番が逆だと鍵名がデフォルトのままになって、後でhostname変えるとSSHが暗黙で死ぬことがあります。
-
VTYは 0-4 と 5-15 の両方に
transport input sshを入れる。最近のIOS XEだと分かれているので、片方だけ設定してると同時接続数が増えた瞬間に繋がらなくなります。
「aborted, error status 0」の正体
機器ログに %SSH-5-SSH2_SESSION: SSH2 Session request from ... aborted, error status 0 が出る時は、認証フェーズで切れています。原因はだいたい3つに分類できます。
| 原因 | 確認方法 | 対処 |
|---|---|---|
| クライアントが鍵交換途中で切る | TeraTermのログでKEX不一致を確認 | 機器側でKEX追加 or クライアント更新 |
| login local だが username未定義 | `show run | inc username` |
| AAAサーバ応答待ちタイムアウト | test aaa group … |
RADIUS/TACACS復旧 or local fallback |
最速は debug ip ssh detail を取ること。debug終わったら undebug all を忘れずに。
OpenSSH 8/9系で古いCiscoに繋がらない問題
OpenSSHが8.0以降になってから、IOS 12.xやASA 8.xに対して no matching key exchange method found や no matching host key type が出ます。レガシーアルゴリズムがクライアントから外されたのが原因です。
一時的に許可するワンライナー:
ssh -oKexAlgorithms=+diffie-hellman-group14-sha1 \
-oHostKeyAlgorithms=+ssh-rsa \
-oPubkeyAcceptedAlgorithms=+ssh-rsa \
admin@192.168.10.1
恒久対応は ~/.ssh/config に書きます:
Host 192.168.10.*
KexAlgorithms +diffie-hellman-group14-sha1
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
本来は機器側のIOSアップグレードで対応すべきですが、保守期間切れ機器の救出にはこの手が有効。
切り分けチェックリスト(順番が大事)
深夜メンテで頭が回らない時用に、自分はこの順番で見ます。
- L3疎通: クライアント→機器、機器→クライアントの両方で ping
-
SSHサービス:
show ip sshが Enabled か -
RSA鍵:
show crypto key mypubkey rsa -
VTY設定:
show run | sec line vty(0-4 と 5-15 両方) -
access-class:
show access-listsのヒットカウンタ -
認証:
show run | inc username/ aaa -
アルゴリズム不一致: クライアント側で
ssh -v打って KEX/HostKey を読む
⚠️ 切り分け中に transport input all を入れるのは絶対NG。Telnetも一緒に開いてしまいます。
詳しくはブログで
この記事の完全版(コマンド出力例、エラーメッセージ対応表、構成図つき)はブログで公開しています。ご参考まで。
👉 Cisco SSHが接続できない原因と切り分け手順|公開鍵・transport input設定の落とし穴【実機検証】