セキュリティと VPN : セキュア シェル(SSH)

Cisco IOS が稼働するルータとスイッチでの Secure Shell の設定

2008 年 7 月 24 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2007 年 6 月 28 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
SSH v1 対 SSH v2
ネットワーク ダイアグラム
認証のテスト
      SSH 非実装時の認証テスト
      SSH 実装時の認証テスト
構成のオプション設定
      非 SSH 接続の防止
      IOS ルータやスイッチの SSH クライアントとしての設定
      SSH 端末回線アクセスの追加
      SSH バージョンの設定
      banner コマンド出力のバリエーション
      ログイン バナーが表示されない
debug コマンドと show コマンド
デバッグの出力例
      ルータのデバッグ
      サーバのデバッグ
不具合の原因
      Data Encryption Standard(DES; データ暗号標準)でコンパイルされていない SSH クライアントからの SSH
      不正なパスワード
      SSH クライアントによるサポート対象外の(Blowfish)暗号の送信
トラブルシューティングのヒント
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

Secure Shell(SSH)は、セキュアなリモート アクセス接続をネットワーク デバイスに提供するプロトコルです。SSH バージョン 1 と SSH バージョン 2 のどちらでも、クライアントとサーバの間の通信は暗号化されます。より拡張されたセキュリティ暗号化アルゴリズムを使用するため、可能な場合は SSH バージョン 2 を実装してください。

このドキュメントでは、SSH をサポートする Cisco IOS(R) ソフトウェア バージョンが稼働する Cisco ルータやスイッチでの、SSH の設定とデバッグの手順について説明しています。このドキュメントでは、特定のバージョンおよびソフトウェア イメージの詳細情報が提供されています。

前提条件

要件

このドキュメントに適用される特定の前提条件はありません。

使用するコンポーネント

このドキュメントの情報は、Cisco IOS 3600 ソフトウェア(C3640-IK9S-M)、リリース 12.2(2)T1 に基づくものです。

SSH は、次の IOS プラットフォームおよびイメージに導入されています。

  • SSH バージョン 1.0(SSH v1)サーバは、Cisco IOS ソフトウェア リリース 12.0.5.S 以降の一部の IOS プラットフォームおよびイメージに導入されています。

  • SSH クライアントは、Cisco IOS ソフトウェア リリース 12.1.3.T 以降の一部の IOS プラットフォームおよびイメージに導入されています。

  • SSH 端末回線アクセス(別名、リバース Telnet)は、Cisco IOS ソフトウェア リリース 12.2.2.T 以降の一部の IOS プラットフォームおよびイメージに導入されています。

  • SSH バージョン 2.0(SSH v2)のサポートは、Cisco IOS ソフトウェア リリース 12.1(19)E 以降の一部の IOS プラットフォームおよびイメージに導入されています。

  • スイッチでの SSH サポートに関する情報は、『CatOS が稼働する Catalyst スイッチでの SSH の設定』を参照してください。

他の Cisco IOS ソフトウェア リリースや他のプラットフォームでサポートされている機能セットの完全なリストは、Software Advisor登録ユーザ専用)を参照してください。
一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定から作業を開始しています。対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

SSH v1 対 SSH v2

SSH v1 または SSH v2 に関する適切なサポートをともなうコードのバージョンを探すには、Software Advisor登録ユーザ専用)を参照してください。
一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

ネットワーク ダイアグラム

ssh-1.gif

認証のテスト

SSH 非実装時の認証テスト

最初に、SSH を追加する前に、ルータ Carter で認証処理が動作することを確認するために、SSH を実装しない状態で認証をテストします。認証は、ローカル ユーザ名とパスワードを使用するか、TACACS+ または RADIUS が動作する Authentication、Authorization、および Accounting(AAA; 認証、認可、アカウンティング)サーバを使用して行えます(SSH が実装されていると、回線パスワードによる認証は行えません)。次の例では、ユーザ名「cisco」とパスワード「cisco」で、ルータに Telnet する場合のローカル認証を示しています。


!--- aaa new-model コマンドを使用すると、他の AAA 文がない場合には
!--- ルータでローカルのユーザ名とパスワードが使用されます。

aaa new-model
username cisco password 0 cisco
line vty 0 4
transport input telnet

!--- aaa new-model の代わりに、login local コマンドを使用できます。

SSH 実装時の認証テスト

SSH を実装した状態で認証をテストするには、Carter 上で SSH を有効にして、PC と UNIX の端末から SSH をテストできるように、前述の文に追加する必要があります。

ip domain-name rtp.cisco.com

!--- SSH が使用する SSH キーを生成します。

cry key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2

この時点で、show cry key mypubkey rsa コマンドを実行すると、生成されたキーが表示されます。SSH の設定を追加した後、PC と UNIX の端末からルータにアクセスできることをテストします。アクセスできない場合は、このドキュメント内の「デバッグ」セクションを参照してください。

構成のオプション設定

非 SSH 接続の防止

非 SSH 接続を防止する場合は、行の下に transport input ssh コマンドを追加して、ルータを SSH 接続だけに制限します。通常の(非 SSH)Telnet は拒否されます。

line vty 0 4

!--- 非 SSH Telnet を防止します。

transport input ssh

非 SSH ユーザがルータ Carter に Telnet できないこと確認するためのテストを行います。

IOS ルータやスイッチの SSH クライアントとしての設定

IOS ルータで SSH のサポートを有効にするには、次の 4 つのステップを実行する必要があります。

  1. hostname コマンドを設定する。

  2. DNS ドメインを設定する。

  3. SSH が使用する SSH キーを生成する。

  4. virtual type terminal(vtys; バーチャル ターミナル)の SSH 転送のサポートを有効にする。

1 つのデバイスを他方の SSH クライアントとして動作させるには、Reed と呼ばれる 2 番目のデバイスに SSH を追加します。この結果、Carter がサーバとなり、Reed がクライアントとなって、これらのデバイスはクライアントとサーバの関係となります。Reed 上の IOS SSH クライアント設定は、Carter 上の SSH サーバ設定と同じものが必要です。


!--- ステップ 1:ホスト名が未設定の場合は設定します。

hostname carter

!--- aaa new-model コマンドを使用すると、他の AAA 文がない場合には
!--- ルータでローカルのユーザ名とパスワードが使用されます。

aaa new-model
username cisco password 0 cisco

!--- ステップ 2:ルータの DNS ドメインを設定します。

ip domain-name rtp.cisco.com

!--- ステップ 3:SSH で使用される SSH キーを生成します。

cry key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2

!--- ステップ 4:デフォルトでは、vtys の転送は Telnet になっています。この場合は、 
!--- Telnet は無効となり、SSH だけがサポートされます。

line vty 0 4
transport input SSH

!--- aaa new-model の代わりに、login local コマンドを使用できます。

設定をテストするには、IOS SSH クライアント(Reed)から IOS SSH サーバ(Carter)の SSH に次のコマンドを発行します。

  • SSH v1:

    ssh -l cisco -c 3des 10.13.1.99
    
  • SSH v2:

    ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -l cisco 10.31.1.99
    

SSH 端末回線アクセスの追加

送信 SSH 端末回線認証が必要な場合は、Philly への comm server として動作する、Carter 経由の送信リバース Telnet に SSH を設定でき、その設定をテストできます。

ip ssh port 2001 rotary 1
line 1 16
   no exec
   rotary 1
   transport input ssh
   exec-timeout 0 0
   modem In Out
   Stopbits 1

Philly が Cater のポート 2 に接続している場合は、次のコマンドによって、Reed から Carter 経由で SSH を Philly に設定できます。

  • SSH v1:

    ssh -c 3des -p 2002 10.13.1.99
    
  • SSH v2:

    ssh -v 2 -c aes256-cbc -m hmac-sha1-160 -p 2002 10.31.1.99
    

Solaris からは、次のコマンドが使用できます。

ssh -c 3des -p 2002 -x -v 10.13.1.99

SSH バージョンの設定

SSH v1 の設定:

carter (config)#ip ssh version 1

SSH v2 の設定:

carter (config)#ip ssh version 2

SSH v1 と v2 の設定:

carter (config)#no ip ssh version

banner コマンド出力のバリエーション

banner コマンドの出力は、Telnet と SSH 接続の異なるバージョンの間では異なります。この表では、さまざまな接続タイプで、さまざまな banner コマンド オプションが、どのように動作するのかを説明しています。

banner コマンド オプション Telnet SSH v1 のみ SSH v1 と v2 SSH v2 のみ
banner login デバイスにログインする前に表示される。 表示されない。 デバイスにログインする前に表示される。 デバイスにログインする前に表示される。
banner motd デバイスにログインする前に表示される。 デバイスにログインした後に表示される。 デバイスにログインした後に表示される。 デバイスにログインした後に表示される。
banner exec デバイスにログインした後に表示される。 デバイスにログインした後に表示される。 デバイスにログインした後に表示される。 デバイスにログインした後に表示される。

ログイン バナーが表示されない

SSH バージョン 2 は、ログイン バナーをサポートしています。Cisco ルータで SSH セッションを開始する際に、SSH クライアントがユーザ名を送信する場合、ログイン バナーは表示されます。たとえば、Secure Shell ssh クライアントが使用される場合、ログイン バナーが表示されます。PuTTY ssh クライアントが使用される場合、ログイン バナーは表示されません。これは、Secure Shell はデフォルトでユーザ名を送信し、PuTTY はデフォルトではユーザ名を送信しないためです。

Secure Shell クライアントでは、SSH 対応デバイスへの接続を開始するには、ユーザ名が必要です。ホスト名とユーザ名を入力しないと、Connect ボタンは有効になりません。次の画面ショットは、Secure Shell がルータに接続する際に、ログイン バナーが表示されることを示しています。それから、ログイン バナー パスワードのプロンプトが表示されます。

ssh-2.gif

PuTTY クライアントでは、ルータへの SSH 接続を開始するのに、ユーザ名は必要ありません。次の画面ショットは、PuTTY クライアントがルータに接続して、ユーザ名とパスワードのプロンプトが表示されることを示しています。ログイン バナーは表示されません。

ssh-3.gif

次の画面ショットは、PuTTY がルータへユーザ名を送信するように設定されている場合、ログイン バナーが表示されることを示しています。

ssh-5.gif

debug コマンドと show コマンド

ここで説明されている debug コマンドを発行する前に、『debug コマンドの重要な情報』を参照してください。特定の show コマンドは、アウトプットインタープリタ登録ユーザ専用)でサポートされています。このツールを使用すると、show コマンドの出力を分析できます。
一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

  • debug ip ssh:SSH のデバッグ メッセージを表示します。

  • show ssh:SSH サーバの接続状態を表示します。

    carter#show ssh
      Connection    Version Encryption    State              Username
       0            1.5     DES           Session started    cisco
    
  • show ip ssh:SSH のバージョンと設定データを表示します。

    • バージョン 1 接続あり、およびバージョン 2 接続なし

      carter#show ip ssh
        SSH Enabled - version 1.5
        Authentication timeout: 60 secs; Authentication retries: 2
      
    • バージョン 2 接続あり、およびバージョン 1 接続なし

      carter#show ip ssh
        SSH Enabled - version 2.0
        Authentication timeout: 120 secs; Authentication retries: 3
      
    • バージョン 1 およびバージョン 2 接続あり

      carter#show ip ssh
        SSH Enabled - version 1.99
        Authentication timeout: 120 secs; Authentication retries: 3
      

デバッグの出力例

ルータのデバッグ

注:正常なデバッグ出力の一部は、スペースの制約により、複数の行に渡って表記されています。

00:23:20: SSH0: starting SSH control process
00:23:20: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:23:20: SSH0: protocol version id is - SSH-1.5-1.2.26
00:23:20: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:23:21: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:23:21: SSH: RSA decrypt started
00:23:21: SSH: RSA decrypt finished
00:23:21: SSH: RSA decrypt started
00:23:21: SSH: RSA decrypt finished
00:23:21: SSH0: sending encryption confirmation
00:23:21: SSH0: keys exchanged and encryption on
00:23:21: SSH0: SSH_CMSG_USER message received
00:23:21: SSH0: authentication request for userid cisco
00:23:21: SSH0: SSH_SMSG_FAILURE message sent
00:23:23: SSH0: SSH_CMSG_AUTH_PASSWORD message received
00:23:23: SSH0: authentication successful for cisco
00:23:23: SSH0: requesting TTY
00:23:23: SSH0: setting TTY - requested: length 24, width 80; set:
   length 24, width 80
00:23:23: SSH0: invalid request - 0x22
00:23:23: SSH0: SSH_CMSG_EXEC_SHELL message received
00:23:23: SSH0: starting shell for vty

サーバのデバッグ

注:この出力は、Solaris マシンでキャプチャされたものです。

rtp-evergreen.rtp.cisco.com#ssh -c 3des -l cisco -v 10.31.1.99
rtp-evergreen#/opt/CISssh/bin/ssh -c 3des -l cisco -v 10.13.1.99
SSH Version 1.2.26 [sparc-sun-solaris2.5.1], protocol version 1.5.
Compiled with RSAREF.
rtp-evergreen: Reading configuration data /opt/CISssh/etc/ssh_config
rtp-evergreen: ssh_connect: getuid 0 geteuid 0 anon 0
rtp-evergreen: Allocated local port 1023.
rtp-evergreen: Connecting to 10.13.1.99 port 22.
rtp-evergreen: Connection established.
rtp-evergreen: Remote protocol version 1.5, 
   remote software version Cisco-1.25
rtp-evergreen: Waiting for server public key.
rtp-evergreen: Received server public key (768 bits) 
   and host key (512 bits).
rtp-evergreen: Host '10.13.1.99' is known and matches the host key.
rtp-evergreen: Initializing random; seed file //.ssh/random_seed
rtp-evergreen: Encryption type: 3des
rtp-evergreen: Sent encrypted session key.
rtp-evergreen: Installing crc compensation attack detector.
rtp-evergreen: Received encrypted confirmation.
rtp-evergreen: Doing password authentication.
cisco@10.13.1.99's password: 
rtp-evergreen: Requesting pty.
rtp-evergreen: Failed to get local xauth data.
rtp-evergreen: Requesting X11 forwarding with authentication spoofing.
Warning: Remote host denied X11 forwarding, perhaps xauth program
   could not be run on the server side.
rtp-evergreen: Requesting shell.
rtp-evergreen: Entering interactive session.

不具合の原因

次のセクションでは、いくつかの誤った設定からのデバッグの出力例を示しています。

Data Encryption Standard(DES; データ暗号標準)でコンパイルされていない SSH クライアントからの SSH

Solaris のデバッグ

rtp-evergreen#/opt/CISssh/bin/ssh -c des -l cisco -v 10.13.1.99
SSH Version 1.2.26 [sparc-sun-solaris2.5.1], protocol version 1.5.
Compiled with RSAREF.
rtp-evergreen: Reading configuration data /opt/CISssh/etc/ssh_config
rtp-evergreen: ssh_connect: getuid 0 geteuid 0 anon 0
rtp-evergreen: Allocated local port 1023.
rtp-evergreen: Connecting to 10.13.1.99 port 22.
rtp-evergreen: Connection established.
rtp-evergreen: Remote protocol version 1.5, 
   remote software version Cisco-1.25
rtp-evergreen: Waiting for server public key.
rtp-evergreen: Received server public key (768 bits) 
   and host key (512 bits).
rtp-evergreen: Host '10.13.1.99' is known and matches the host key.
rtp-evergreen: Initializing random; seed file //.ssh/random_seed
rtp-evergreen: Encryption type: des
rtp-evergreen: Sent encrypted session key.
cipher_set_key: unknown cipher: 2

ルータのデバッグ

00:24:41: SSH0: Session terminated normally
00:24:55: SSH0: starting SSH control process
00:24:55: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:24:55: SSH0: protocol version id is - SSH-1.5-1.2.26
00:24:55: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:24:55: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:24:55: SSH: RSA decrypt started
00:24:56: SSH: RSA decrypt finished
00:24:56: SSH: RSA decrypt started
00:24:56: SSH: RSA decrypt finished
00:24:56: SSH0: sending encryption confirmation
00:24:56: SSH0: Session disconnected - error 0x07

不正なパスワード

ルータのデバッグ

00:26:51: SSH0: starting SSH control process
00:26:51: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:26:52: SSH0: protocol version id is - SSH-1.5-1.2.26
00:26:52: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:26:52: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:26:52: SSH: RSA decrypt started
00:26:52: SSH: RSA decrypt finished
00:26:52: SSH: RSA decrypt started
00:26:52: SSH: RSA decrypt finished
00:26:52: SSH0: sending encryption confirmation
00:26:52: SSH0: keys exchanged and encryption on
00:26:52: SSH0: SSH_CMSG_USER message received
00:26:52: SSH0: authentication request for userid cisco
00:26:52: SSH0: SSH_SMSG_FAILURE message sent
00:26:54: SSH0: SSH_CMSG_AUTH_PASSWORD message received
00:26:54: SSH0: password authentication failed for cisco
00:26:54: SSH0: SSH_SMSG_FAILURE message sent
00:26:54: SSH0: authentication failed for cisco (code=7)
00:26:54: SSH0: Session disconnected - error 0x07

SSH クライアントによるサポート対象外の(Blowfish)暗号の送信

ルータのデバッグ

00:39:26: SSH0: starting SSH control process
00:39:26: SSH0: sent protocol version id SSH-1.5-Cisco-1.25
00:39:26: SSH0: protocol version id is - SSH-1.5-W1.0
00:39:26: SSH0: SSH_SMSG_PUBLIC_KEY msg
00:39:26: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03
00:39:26: SSH0: Session disconnected - error 0x20

トラブルシューティングのヒント

  • SSH コンフィギュレーション コマンドが違法なコマンドとして拒否される場合、ルータで RSA キー ペアが正しく生成されていません。ホスト名とドメインが指定されていることを確認してください。それから、crypto key generate rsa コマンドを使用して RSA キー ペアを生成し、SSH サーバを有効にします。

  • RSA キー ペアを設定する際に、次のエラー メッセージが表示される可能性があります:

    1. No hostname specified

      hostname グローバル コンフィギュレーション コマンドを使用して、ルータにホスト名を設定する必要があります。

    2. No domain specified

      ip domain-name グローバル コンフィギュレーション コマンドを使用して、ルータにホスト ドメインを設定する必要があります。

  • 許可される SSH 接続の数は、ルータで設定される vtys の最大数に制限されています。各 SSH 接続は、vty リソースを使用します。

  • SSH では、ルータで AAA によって設定されるローカル セキュリティまたはセキュリティ プロトコルが、ユーザ認証に使用されます。AAA を設定する場合、コンソール上で AAA を無効にするためにグローバル コンフィギュレーション モードでキーワードを適用することにより、コンソールが AAA の下で実行されていないことを確認する必要があります。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 4145