前回の記事では、Cisco Catalyst 9606Rの最初の一歩として「ホスト名・バナー・タイムゾーン」の設定を解説しました。今回はその次のステップとして、SSHの有効化とセキュアなリモートアクセス設定を解説します。
「SSHって名前は聞いたことあるけど、Telnetと何が違うの?」という人も多いと思います。この記事では、なぜSSHが必要なのかという理由から、実際の設定コマンドまでを順番に説明します。また、CCNAの取得を目指している方の参考になったら嬉しいです!(ちなみに私はCCNPを取得しています!)
前回の記事がまだの方はこちらも合わせて読んでいただけると幸いです。

動作環境
- 機器:Cisco Catalyst 9606R
- OS:Cisco IOS XE 17.6.x(Bengaluru)
- 前提:前回の記事でホスト名・ドメイン名が設定済みであること
- 参照元:Cisco公式セキュリティコンフィギュレーションガイド(IOS XE Bengaluru 17.6.x)
SSHとTelnet、何が違うのか
Cisco機器へのリモートアクセス方法として、従来から使われてきたのがTelnetです。しかしTelnetには致命的な弱点があります。通信内容がすべて平文(暗号化なし)で流れるのです。
つまり、ネットワーク上で通信を傍受されると、ユーザー名・パスワード・入力したコマンドがすべてそのまま見えてしまいます。
一方、SSH(Secure Shell)は通信を暗号化してリモート接続を行うプロトコルです。パスワードやコマンドが暗号化されて送受信されるため、傍受されても内容を読むことができません。
| 比較項目 | Telnet | SSH |
|---|---|---|
| 通信の暗号化 | なし(平文) | あり(暗号化) |
| ポート番号 | 23 | 22 |
| セキュリティ | 低い | 高い |
| 現在の推奨 | 非推奨 | 推奨 |
現在の運用環境ではTelnetではなくSSHを使うことが基本です。Telnetは特別な理由がない限り無効化することを推奨します。
SSHを設定する前の確認事項
公式ドキュメントによると、SSHを有効化するには以下の前提条件が必要です。
- ホスト名が設定されていること(前回の記事で設定済み)
- IPドメイン名が設定されていること(今回設定します)
- RSAキーペアが生成されていること(RSAキーがSSHを自動的に有効化します)
- ローカルユーザー認証が設定されていること
この4つがすべて揃ってはじめて、SSHによるリモートアクセスが可能になります。
SSHの設定手順
ステップ1:IPドメイン名の設定
RSAキーを生成するために、ホスト名とドメイン名が必要です。ホスト名は前回設定済みなので、今回はドメイン名を設定します。
C9606R-Core01# configure terminal
C9606R-Core01(config)# ip domain name showran.local
C9606R-Core01(config)#
ポイント:ドメイン名は自由に設定できます。社内であればexample.co.jpなど、実際の組織ドメインを使うのが一般的です。テスト環境ではshowran.localなどのローカルドメインでも問題ありません。
ステップ2:ローカルユーザーの作成
SSHでログインするためのユーザーアカウントを作成します。公式ドキュメントでも「ローカルアクセスまたはリモートアクセス用にユーザ認証を設定することは必須」と明記されています。
C9606R-Core01(config)# username admin privilege 15 secret StrongPassword123
コマンド解説:
| パラメータ | 説明 |
|---|---|
username admin | ユーザー名(任意) |
privilege 15 | 特権レベル15(最高権限・enable不要) |
secret | パスワードをMD5で暗号化して保存(passwordより安全) |
StrongPassword123 | 設定するパスワード(実際は強力なものを使用) |
注意: passwordコマンドではなく必ずsecretコマンドを使いましょう。secretはパスワードを暗号化して設定ファイルに保存するため、設定ファイルを見られてもパスワードが読み取られません。(passwordでも暗号化されるコマンドはありますが、一旦置いておきます)
ステップ3:RSAキーペアの生成
RSAキーペアを生成することで、SSHが自動的に有効になります。公式ドキュメントでは最小1024ビット、推奨2048ビット以上と記載されています。
C9606R-Core01(config)# crypto key generate rsa modulus 2048
The name for the keys will be: C9606R-Core01.shoran.local
% The key modulus size is 2048 bits
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 3 seconds)
ポイント:
- キー名は「ホスト名.ドメイン名」の形式で自動生成されます(ここでは
C9606R-Core01.shoran.local) - モジュラスサイズは2048ビット以上を推奨します。ビット数が大きいほどセキュリティが高まりますが、生成に時間がかかります
- このコマンドを実行した時点でSSHが自動的に有効化されます
ステップ4:SSHバージョン2の指定
Cisco IOS XEはSSHv1とSSHv2の両方をサポートしていますが、SSHv1には既知の脆弱性があります。SSHv2のみを使用するように設定します。
C9606R-Core01(config)# ip ssh version 2
これだけで、SSHv1での接続を拒否し、SSHv2のみを受け付けるようになります。
ステップ5:VTY回線へのSSH適用
VTY(Virtual Terminal Line)は、リモートアクセス用の仮想端末回線です。SSHのみを許可するように設定します。
C9606R-Core01(config)# line vty 0 15
C9606R-Core01(config-line)# transport input ssh
C9606R-Core01(config-line)# login local
C9606R-Core01(config-line)# exec-timeout 10 0
C9606R-Core01(config-line)# exit
コマンド解説:
| コマンド | 説明 |
|---|---|
line vty 0 15 | VTY回線0〜15番を設定対象にする(最大16セッション) |
transport input ssh | SSH接続のみを許可(Telnetを拒否) |
login local | ローカルユーザーDB(usernameコマンドで作成したもの)で認証 |
exec-timeout 10 0 | 10分間操作がなければ自動切断(セキュリティ対策) |
重要:transport input telnetやtransport input allにすると、TelnetとSSHの両方が許可されてしまいます。セキュリティのため、必ずtransport input sshに限定してください。
ステップ6:enableパスワードの設定
特権EXECモード(enable)のパスワードを設定します。privilege 15のユーザーはenable不要ですが、セキュリティの多重化として設定しておくことを推奨します。
C9606R-Core01(config)# enable secret StrongEnablePassword456
enable passwordではなく、必ずenable secretを使いましょう。secretはパスワードを暗号化して保存します。
ステップ7:設定の確認
SSH設定が正しく完了しているか確認します。
C9606R-Core01# show ip ssh
出力例:
SSH Enabled - version 2.0
Authentication timeout: 120 secs; Authentication retries: 3
Minimum expected Diffie Hellman key size : 1024 bits
IOS Keys in SECSH format(ssh-rsa, base64 encoded): C9606R-Core01.shoran.local
SSH Enabled - version 2.0と表示されていれば、SSHv2が正しく有効化されています。
SSHの接続状況を確認するには:
C9606R-Core01# show ssh
出力例(接続中のセッションがある場合):
Connection Version Mode Encryption Hmac State Username
0 2.0 IN aes256-ctr hmac-sha2 Session started admin
ステップ8:Telnetの無効化(推奨)
SSHが正常に動作することを確認したら、TelnetをVTY回線から完全に無効化します。transport input sshを設定した時点でTelnetは拒否されていますが、念のため確認しておきましょう。
C9606R-Core01# show running-config | section line vty
line vty 0 15
exec-timeout 10 0
login local
transport input ssh
transport input sshのみの表示であれば、Telnetは無効になっています。
ステップ9:設定の保存
C9606R-Core01# write memory
Building configuration...
[OK]
設定コマンドのまとめ
今回設定したコマンドを一覧にまとめます。
! IPドメイン名の設定
ip domain name shoran.local
! ローカルユーザーの作成
username admin privilege 15 secret StrongPassword123
! RSAキーペアの生成(SSHが自動的に有効化される)
crypto key generate rsa modulus 2048
! SSHv2のみを許可
ip ssh version 2
! VTY回線の設定
line vty 0 15
transport input ssh
login local
exec-timeout 10 0
exit
! enableパスワードの設定
enable secret StrongEnablePassword456
! 設定の保存
write memory
よくあるトラブルと対処法
RSAキー生成時に「No host name specified」と表示される
ホスト名が設定されていないと表示されます。前回の記事を参照して、まずhostnameコマンドでホスト名を設定してください。
RSAキー生成時に「No domain specified」と表示される
ドメイン名が設定されていません。ip domain nameコマンドでドメイン名を設定してから、再度crypto key generate rsaを実行してください。
SSHで接続できない
以下を確認してください。
show ip sshでSSHがEnabledになっているかshow running-config | section line vtyでtransport input sshが設定されているか- 接続先のIPアドレスが正しいか(管理用インターフェイスへのルーティングが通っているか)
まとめ
今回のポイントをまとめます。
- TelnetはパスワードやコマンドがすべてGR文で流れるため、現在の運用では非推奨
- SSHは通信を暗号化するため、セキュアなリモートアクセスが可能
- SSHの有効化には「ホスト名・ドメイン名・RSAキーペア・ローカル認証」の4つが必要
- RSAキーペアは2048ビット以上を推奨
- VTY回線は
transport input sshでSSHのみに限定する secretコマンドでパスワードを暗号化して保存する
初期設定の1本目(ホスト名・バナー・タイムゾーン)と今回のSSH設定を完了すれば、機器への安全なリモートアクセス環境が整います。次回はVLANの作成と割り当て設定を解説します。



コメント