SSH プロトコルは多くの認証方法をサポートしています。 その中でも最も重要なもののひとつが、対話的で自動化された接続のための公開鍵認証です。
Public Key authentication – what and why?
単純なパスワードではなく公開鍵認証を使用する動機は、セキュリティです。 公開鍵認証は、非常に長いパスワードでさえも提供できない暗号強度を提供します。
セキュリティに加えて、公開鍵認証はユーザビリティの面でも利点があり、接続する SSH サーバー間でシングル サインオンを実装することができます。 公開鍵認証はまた、パスワードなしの自動ログインを可能にします。これは、世界中の企業ネットワーク内で実行されている無数の安全な自動化プロセスを実現する鍵となります。
非対称暗号 – アルゴリズム
他の暗号化スキームと同様に、公開鍵認証はアルゴリズムに基づいています。 よく研究され、安全で信頼できるアルゴリズムがいくつかありますが、最も一般的なのは RSA と DSA です。 一般的に知られている(対称鍵または秘密鍵)暗号化アルゴリズムとは異なり、公開鍵暗号化アルゴリズムは2つの別々の鍵で動作します。
キー ペア – 公開と非公開 SSH 公開鍵認証のユースケースでは、ユーザーが自分自身のためにキー ペアを作成 (すなわち、プロビジョニング) するのが一般的です。
各 SSH 鍵ペアには 2 つの鍵が含まれています:
-
SSH サーバーにコピーされる公開鍵です。 公開鍵のコピーを持っている人は誰でもデータを暗号化することができ、対応する秘密鍵を持っている人だけがデータを読むことができます。 SSHサーバは、ユーザから公開鍵を受け取り、その鍵が信頼できると判断すると、authorized_keysファイルにその鍵が認証されたとマークします。
-
ユーザーの手元に(だけ)残る秘密鍵です。 この鍵を持っていることが、ユーザーの身元を証明することになります。 サーバーの公開鍵に対応する秘密鍵を所有しているユーザーのみが、正常に認証を行うことができます。 秘密鍵は慎重に保管し、取り扱いに注意する必要があり、秘密鍵のコピーを配布してはならない。
Setting Up Public Key Authentication for SSH
公開鍵認証(SSH用)を設定するには、次のような簡単な手順が必要です:
-
キーペアが作成されます(通常はユーザーが作成します)。
-
秘密鍵はユーザーの手元に(そしてそこだけに)残り、公開鍵はサーバーに送られます。
-
サーバーは公開鍵を保存します (そして、許可されたものとして「マーク」します)。
-
サーバーは、対応する秘密鍵を持っていることを証明できる人には、アクセスを許可します。 ほとんどのユーザー主導のユースケースでは、秘密鍵をパスフレーズで暗号化することで実現しています。
秘密鍵が必要になったとき、ユーザーは秘密鍵を復号できるようにパスフレーズを提供するよう求められます。
ほとんどの自動化されたユースケース(スクリプト、アプリケーションなど)では、秘密鍵は保護されておらず、安全性を維持し、規制上の義務に準拠するためには、慎重な計画と鍵管理の実践が必要です。
サーバーやその他のITインフラストラクチャへのアクセスを管理・制御することは、金融、エネルギー、ヘルスケア、商業などの規制された市場で事業を行うあらゆる企業にとって法的に必要なことです。 このような企業では、SSH鍵によるアクセスを管理するために、SSH鍵管理のソリューションを採用する必要があります。