ネットワーク機器でリモートログインを安全に行うには、TelnetではなくSSH接続が必須です。
しかし実際には「RSA鍵の生成でエラーになる」「バージョン設定がうまくいかない」など、細かい部分で詰まるケースも少なくありません。
この記事では、Cisco公式ドキュメント(IOS / IOS-XE)をもとにしたSSH有効化の正しい手順を、
運用時の注意点・トラブル対処まで含めて丁寧に解説します。
SSH有効化の前提条件
SSHを有効化するためには、以下の条件を満たす必要があります。
| 要件 | 内容 |
|---|---|
| 暗号化対応イメージ | SSHは「k9(crypto)」イメージでのみ利用可能。例:c800-universalk9-mz。非k9ではSSHコマンド自体が存在しない。 |
| 操作モード | enable(特権モード)で実施。 |
| ホスト名とドメイン名 | RSA鍵生成時に必須。例:hostname R1、ip domain-name example.com。※ ip ssh rsa keypair-name <任意名> を使用する場合は省略可(IOS-XE 16.9(1)以降)。 |
| RSA鍵長 | 最小:768bit(技術的下限)/推奨:2048bit以上。 |
SSH設定手順(IOS / IOS-XE共通)
(1) ホスト名とドメイン名を設定
RSA鍵の生成に必要です。
Router(config)# hostname R1
R1(config)# ip domain-name example.com
(2) RSA鍵を生成
SSH通信を暗号化するためのRSA鍵を作成します。
R1(config)# crypto key generate rsa modulus 2048
- 2048bit推奨(768bitは技術的最小値)
- 既存鍵を再生成する場合は次のコマンドで削除後に実行:
R1(config)# crypto key zeroize rsa
(3) SSHバージョンを指定
デフォルトでは v1/v2互換モード(Version 1.99) が有効です。
このモードは古いクライアントとの互換性を保ちますが、v1通信を許可するためセキュリティ上リスクがあります。
そのため、v2のみを明示的に有効化します。
R1(config)# ip ssh version 2
確認コマンド:
R1# show ip ssh
SSH Enabled - version 2.0
出力が「version 1.99」と表示される場合はv1/v2互換モードです。
v2限定にすることで暗号強度・安全性が向上します。
(4) ローカルユーザを作成
SSH認証に使用するユーザを作成します。
R1(config)# username admin secret P@ssw0rd
secretは暗号化保存、passwordは平文。- 必ず
secretを使用してください。
(5) vtyライン設定(SSH専用に制限)
Telnetを禁止し、SSHのみ受け付けるようにします。
R1(config)# line vty 0 4
R1(config-line)# transport input ssh
R1(config-line)# login local
R1(config-line)# exec-timeout 10 0
| 設定 | 説明 |
|---|---|
transport input ssh | Telnetを無効化してSSHのみ許可 |
login local | ローカルユーザ認証を利用 |
exec-timeout 10 0 | 10分無操作で自動切断 |
設定の確認
R1# show ip ssh
SSH Enabled - version 2.0
Authentication timeout: 120 secs; Authentication retries: 3
出力に SSH Enabled - version 2.0 が表示されれば設定完了です。
よくあるトラブルと解決策
| 症状 | 原因 | 対処 |
|---|---|---|
| RSA鍵が生成できない | domain-name 未設定 | ip domain-name を設定して再実行 |
| SSH接続不可 | vty設定がTelnetのまま | transport input ssh に変更 |
| v2が有効にならない | 鍵長が768bit未満 | 2048bit以上で再生成 |
| SSHコマンドが存在しない | 非k9イメージ使用 | k9(crypto)イメージへ変更 |
セキュリティ強化設定(推奨)
(1) 管理端末を限定(ACL)
管理ネットワーク以外からのSSHアクセスを拒否します。
R1(config)# access-list 10 permit 192.168.10.0 0.0.0.255
R1(config)# line vty 0 4
R1(config-line)# access-class 10 in
(2) SSHパラメータを調整
R1(config)# ip ssh time-out 60
R1(config)# ip ssh authentication-retries 3
(3) SCP転送を有効化
R1(config)# ip scp server enable
一部機種では
aaa new-modelが必要。
未設定だとSCPが起動しない場合があります。
設定を保存
R1# write memory
! または
R1# copy running-config startup-config
まとめ
SSH有効化手順(最新版)は以下の流れです。
- 暗号化対応(k9)イメージで起動していることを確認
- ホスト名・ドメイン名を設定(または keypair-name 指定)
- RSA鍵を生成(2048bit推奨)
- SSH v2を明示的に指定
- vtyラインをSSH専用に設定
- ACL・timeoutなどでセキュリティ強化
これで自己署名RSA鍵による安全なSSH通信が可能になります。
外部CA証明書を導入しなくても、Cisco機器内部で完結できます。
