SSH および Telnet について
ここでは、SSH および Telnet について説明します。
SSH サーバー
SSH サーバを使用すると、SSH クライアントは Cisco NX-OS デバイスとの間でセキュアな暗号化された接続を確立できます。SSH は強化暗号化を使用して認証を行います。Cisco NX-OS ソフトウェアの SSH サーバは、市販の一般的な SSH クライアントと相互運用ができます。
SSH がサポートするユーザ認証メカニズムには、Remote Authentication Dial-In User Service(RADIUS)、TACACS+、LDAP、およびローカルに格納されたユーザ名とパスワードを使用した認証があります。
SSH クライアント
SSH クライアントは、SSH プロトコルで稼働しデバイス認証および暗号化を提供するアプリケーションです。Cisco NX-OS デバイスは、SSH クライアントを使用して、別の Cisco NX-OS デバイスまたは SSH サーバの稼働する他のデバイスとの間で暗号化された安全な接続を確立できます。この接続は、暗号化されたアウトバウンド接続を実現します。認証と暗号化により、SSH クライアントは、セキュリティ保護されていないネットワーク上でもセキュアな通信を実現できます。
Cisco NX-OS ソフトウェアの SSH クライアントは、無償あるいは商用の SSH サーバと連係して動作します。
SSH サーバ キー
SSH では、Cisco NX-OS とのセキュアな通信を行うためにサーバ キーが必要です。SSH サーバ キーは、次の SSH オプションに使用できます。
-
Rivest, Shamir, and Adelman(RSA)公開キー暗号化を使用した SSH バージョン 2
-
Digital System Algrorithm(DSA)を使用した SSH バージョン 2
-
楕円曲線デジタル署名アルゴリズム(ECDSA)を使用した SSH バージョン 2
SSH サービスをイネーブルにする前に、適切なバージョンの SSH サーバ キー ペアを取得してください。使用中の SSH クライアント バージョンに応じて、SSH サーバ キー ペアを生成します。SSH サービスでは、SSH バージョン 2 に対応する以下の 2 通りのキー ペアを使用できます。
-
dsa オプションでは、SSH バージョン 2 プロトコル用の DSA キー ペアを作成します。
-
rsa オプションでは、SSH バージョン 2 プロトコル用の RSA キー ペアを作成します。
-
ecdsa オプションでは、SSH バージョン 2 プロトコル用の ECDSA キー ペアを作成します。
デフォルトでは、Cisco NX-OS ソフトウェアは 1024 ビットの RSA キーを生成します。
SSH は、次の公開キー形式をサポートします。
-
OpenSSH
-
IETF SSH(SECSH)
-
Privacy-Enhanced Mail(PEM)の公開キー証明書
![]() Caution |
SSH キーをすべて削除すると、SSH サービスを開始できません。 |
デジタル証明書を使用した SSH 認証
Cisco NX-OS デバイスでの SSH 認証では、ホスト認証用に X.509 デジタル証明書をサポートしています。X.509 デジタル証明書は、メッセージの出所と整合性を保証するデータ項目です。これには安全な通信のための暗号化されたキーが含まれています。また、発信者のアイデンティティを証明するために信頼できる認証局(CA)によって署名されています。X.509 デジタル証明書のサポートにより、認証に DSA と RSA のいずれかのアルゴリズムを使用します。
証明書のインフラストラクチャでは、Secure Socket Layer(SSL)に対応し、セキュリティ インフラストラクチャによってクエリーまたは通知を通じて最初に返される証明書が使用されます。証明書が信頼できる CA のいずれかで設定されており、無効にされたり期限が切れたりしていなければ、証明書の検証は成功します。
X.509 証明書を使用する SSH 認証用にデバイスを設定できます。認証に失敗した場合は、パスワードの入力が求められます。
X.509v3 証明書(RFC 6187)を使用する SSH 認証を設定できます。X.509v3 証明書ベースの SSH 認証では、スマートカードと組み合わせた証明書を使用して、シスコ デバイスへのアクセスの 2 要素認証を有効にします。SSH クライアントは、シスコパートナーの Pragma Systems によって提供されます。
ホスト アイデンティティに基づく認証(HIBA)を使用した SSH 認証
ホストベース認証は、 サーバーの known_hosts ファイルでクライアントのホスト公開キーを確認することにより、クライアントのホストをサーバー(Cisco Nexus 9000 スイッチ)に対して認証するSSH認証方式です。これは、ユーザーまたはホストを認証ために認証局(CA)によって署名されたデジタル証明書を使用する
SSH 証明書ベースの認証とは異なります。
ホスト アイデンティティ ベースの認証(HIBA)は、証明書にホスト承認情報を埋め込むことによって SSH 承認管理を一元化する方式です。
-
ホスト承認情報は、ホスト証明書に組み込まれています。
-
ユーザー証明書には、アクセス許可を指定する「付与」が含まれています。
-
認証は、認証局(CA)によって一元的に管理されます。
HIBA は SSH アクセス制御を簡素化し、管理オーバーヘッドを削減し、承認のための外部 AAA サーバーへの依存を排除します。
HIBA の利点
HIBA には、従来の SSH キー管理に比べて次のような利点があります。
HIBA の主なメリットは以下のとおりです:
-
管理の簡素化: 証明書ベースのアイデンティティによる一元化された承認により、管理が簡素化されます。
-
拡張性: 大規模で複雑な環境での SSH アクセスの管理が簡素化されます。
-
依存関係の軽減: 承認に関する外部 AAA サーバーへの依存性を排除し、最終手段としてのアクセスに適したものにします。
-
セキュリティの強化: 短期間の証明書を使用した一時的なアクセスと特権アクセスの制御を向上させます。
HIBA によるSSH 認証の仕組み
このプロセスでは、HIBA が構成されている場合に SSH 認証がどのように行われるかについて説明します。
Summary
SSH サーバーは、HIBA 承認モジュールを呼び出し、認証中にユーザー証明書を処理します。アクセスは、構成されたホスト アイデンティティと付与に対して HIBA モジュールがユーザーの証明書を正常に検証した場合に付与されます。HIBA 検証が失敗した場合、 SSH サーバーは、構成に応じて、他の認証方法にフォールバックする場合があります。
Workflow
次の段階で、HIBA を使用した SSH 認証プロセスについて説明します。
-
[SSH 接続試行(SSH Connection Attempt) ]:ユーザーは、 SSH でスイッチへの接続を試行します。
-
[証明書の提示(Certificate Presentation)] : SSH クライアントは、スイッチ上の SSH サーバーにユーザーの証明書を提示します。
-
[HIBA モジュール呼び出し(HIBA Module Invocation)] : SSH サーバーは、その構成(AuthorizedPrincipalsCommand)に基づいて、HIBA 承認モジュールを呼び出します。
-
[証明書の検証(Certificate Validation)] :HIBA モジュールは、次の検証を実行します:
-
構成された HIBA CA と 照合してユーザー証明書の署名を確認します。
-
ホスト証明書からホスト アイデンティティを抽出します。
-
ホスト アイデンティティと一致するユーザー証明書内の有効な「付与」をチェックします。
-
-
[アクセス決定(Access Decision)] :HIBA モジュールの検証に基づいて、次のいずれかが行われます:
属性... 結合できるフィールド 次の操作 結合できるフィールド ユーザー証明書が HIBA モジュールによって正常に検証されました。
ターゲット ホストの有効な付与がユーザー証明書にあります。
ユーザーにアクセス権が付与されます。
SSH セッションが続行されます。
ユーザー証明書が無効であるか、検証できません。
ユーザー証明書に有効な付与が見つかりませんでした。
HIBA モジュールによってアクセスが拒否されました。
SSH サーバーは、他の認証方法にフォールバックする場合があります(構成されている場合)。
SSH 認証の HIBA の構成
この手順では、 SSH ホスト アイデンティティ ベースの認可(HIBA)の構成について説明します。
この構成では、 SSH サーバー キーの生成、HIBA CA のトラストポイントの構成、 SSH ホスト証明書の登録、認証に HIBA を使用するための SSH サーバーの構成を行います。
![]() (注) |
初めて HIBA を構成する場合、ローカル ユーザー アカウントやその他の構成済み AAA サーバーなど、従来の SSH 認証方式を使用してスイッチにログインできます。HIBA を有効にしても、既存のローカル SSH ユーザーは、明示的にアカウントを削除しない限り、削除またはブロックされません。 |
始める前に
HIBA を構成する前に、次の点を確認してください:
-
認証局(CA)を含む、機能する PKI インフラストラクチャ。
-
CA サーバーへの接続。
手順
|
ステップ 1 |
configure terminal 例:
グローバル構成モードを開始します。 |
|
ステップ 2 |
ssh key ecdsa bits 例:
スイッチの ECDSA キーペアを生成します。この例では、384 ビットの ECDSA キーが使用されています。セキュリティ ポリシーとプラットフォームでサポートされるキー サイズを使用します。 |
|
ステップ 3 |
ssh key export bootflash:file_name ecdsa 例:
SSH ホスト ECDSA キーをブートフラッシュにエクスポートします。必要に合わせて エクスポート後、SFTP を使用して
|
|
ステップ 4 |
crypto ca trustpoint openssh-ca type ssh 例:
HIBA CA のトラストポイントを作成します。一貫性を保つために、 openssh-ca という名前を使用します。 |
|
ステップ 5 |
crypto ca authenticate openssh-ca type ssh ecdsa-sha2-nistp384 public_key 例:
CA 公開キーをインポートして HIBA CAを認証します。キー文字列を実際の CA 公開キーに置き換えます。 |
|
ステップ 6 |
crypto ca enroll openssh-ca type ssh host-certificate ecdsa-sha2-nistp384-cert-v01@openssh.com certificate_content 例:
CA によって署名された SSH ホスト証明書を登録します。Google HIBA CA Wiki の手順に従って生成された証明書のコンテンツを使用します。 |
設定例: Linux での HIBA SSH クライアント
![]() 重要 |
次に、 Linuxシステムで HIBA SSH クライアントを設定するための 例 として、次の手順を示します。正確な手順と出力は、クライアント オペレーティング システムと SSH のバージョンによって異なる場合があります。確実な手順については、システムの公式な SSHドキュメントを参照してください。 |
この手順では、SSH でホスト アイデンティティ ベースの認証(HIBA)を使用するためのクライアント側の設定について説明します。
![]() (注) |
「HIBA サーバー」という用語は、 Cisco Nexus 9000 スイッチで実行され、HIBA を使用するように設定された SSH サーバーを指します。 |
始める前に
HIBA SSH クライアントを設定する前に、次を確認してください。
-
ホストに
openssh-clientが有効にインストールされていること。 -
CA 公開キー(
ca.pub)。 -
ユーザー秘密キーおよび有効な HIBA 拡張との一致証明書。
-
ユーザー公開キー(
key_rsa.pubまたは同等のもの)。
手順
|
ステップ 1 |
$ cat /etc/ssh/ssh_config 例:
SSH クライアント設定の構成 |
||
|
ステップ 2 |
$ echo "@cert-authority * $(cat /etc/ssh/ca.pub)" > /etc/ssh/known_hosts 例:
known_hosts に CA 公開キーを入力します |
||
|
ステップ 3 |
$ cat ~/.ssh/key_rsa.pub 例:
公開キーの表示 ユーザー公開キーファイルの内容を表示します。このキーは証明書ベースの認証に必要であり、秘密キーおよび証明書に対応している必要があります。
|
||
|
ステップ 4 |
$ ssh -i <path_to_private_key> <user>@<hiba_server_ip> 例:
HIBA 対応 SSH サーバーへの接続 自分の秘密キー(および必要な場合は秘密キーとそれに一致する証明書)を使用して、SSH サーバーに接続します。
|
正しく設定されている場合、 SSH 接続は HIBA 証明書ベースの認証を使用して確立され、CA 公開キーに対するホストの検証が成功します。公開キーがサーバーの authorized_keys に存在する場合、パスワードレス ログインが可能になります。
HIBA 構成の確認
手順
|
ステップ 1 |
show crypto ca certificates type ssh 例:
SSH 証明書を表示し、ホスト証明書が登録済みで、正しいトラストポイント( [想定される出力(Expected Output)]: 出力には、HIBA 付与を示す「HIBA Info」セクションを含む、 SSH ホスト証明書の詳細が表示される必要があります。 ホスト証明書と HIBA 情報が正しく表示されれば、証明書の登録は成功です。 |
|
ステップ 2 |
show crypto ca trustpoints type ssh 例:
SSH トラストポイントを表示し、HIBA CA トラストポイント( [想定される出力(Expected Output)]: 出力には、タイプ HIBA CA トラストポイントが出力に表示される場合、トラストポイントは正常に構成されています。 |
|
ステップ 3 |
ssh -i path_to_private_key> <user>@<switch_ip 例:
CA によって署名された HIBA 対応証明書を持つユーザーを使用して、スイッチに SSH で接続します。 注:-i オプションは、ユーザーの パスワードの入力を求めずに、 SSH 接続が正常に確立されます(パスワード認証が無効になっている場合)。 |
Telnet サーバ
Telnet プロトコルは、ホストとの TCP/IP 接続を確立します。Telnet を使用すると、あるサイトのユーザが別のサイトのログイン サーバと TCP 接続を確立し、キーストロークをデバイス間でやり取りできます。Telnet は、リモート デバイス アドレスとして IP アドレスまたはドメイン名のいずれかを受け入れます。
デフォルトでは、Telnet サーバが Cisco NX-OS デバイス上でディセーブルになっています。


フィードバック