SSH (Secure Shell)キーは、コンピュータまたはネットワークへのアクセスを保護するために使用される暗号鍵ペアです。公開鍵はサーバーに保存され、秘密鍵はクライアント側で秘密に保持されます。この鍵ペアにより、クライアントとサーバー間で安全な暗号化通信と認証が可能になります。
ユーザーがサーバーへのSSH接続を開始すると、サーバーはユーザーの公開鍵で暗号化されたメッセージを送信します。クライアントは秘密鍵を使用してメッセージを復号し、それをサーバーに送り返して認証を行います。これにより、パスワードのような機密情報をネットワーク上で送信することなく認証が可能になります。
セキュリティの向上: SSHキーは、パスワードに比べてより安全な認証方法を提供します。非対称暗号化アルゴリズムに基づいているため、攻撃者がユーザーをなりすましたり、機密データを傍受することは非常に困難です。
強力な認証: SSHキーを使用することで、ユーザーはプライベートキーを持っていることに基づいて認証されます。これにより、複雑なパスワードを覚える必要がなくなり、ブルートフォース攻撃や辞書攻撃など、パスワードに基づく攻撃のリスクが減少します。
鍵ベースのアクセス: SSHキー ペアが設定されれば、ユーザーは複数のサーバーにアクセス可能になり、各サーバーごとに異なるパスワードを覚える必要がありません。これは、リモートサーバーで頻繁に作業するシステム管理者や開発者にとって特に便利です。
柔軟性: SSHキーはさまざまなオペレーティングシステムやプラットフォームで利用できるため、汎用性があり広くサポートされています。
SSHキーを使用するには、ローカルマシンで鍵ペアを生成する必要があります。以下に手順を示します:
既存のSSHキーを確認: 新しい鍵ペアを生成する前に、コンピュータに既に鍵ペアが存在するかどうか確認する必要があります。LinuxまたはmacOSでは、ls ~/.ssh
コマンドを使用して既存の鍵ファイルの有無を確認できます。Windowsでは、C:\Users\your_username\.ssh
を確認してください。
新しいSSHキー ペアを生成: SSHキー ペアがない場合は、次のコマンドを使用して新しい鍵ペアを生成できます:ssh-keygen -t rsa -b 4096
。これにより、ビットサイズ4096の新しいRSAキー ペアが作成されます。
安全なパスフレーズを選択: プライベートキーのパスフレーズを入力するよう求められます。任意ですが、パスフレーズを使用すると追加のセキュリティが提供されます。推測が難しい強力でユニークなパスフレーズを選んでください。
公開鍵をサーバーにコピー: 鍵ペアを生成したら、アクセスしたいサーバーに公開鍵をコピーする必要があります。テキストエディタで~/.ssh/id_rsa.pub
ファイルを開いて、内容をコピーします。
サーバーのauthorized_keysに公開鍵を追加: サーバー上で~/.ssh
ディレクトリに移動し(存在しない場合は作成)、テキストエディタでauthorized_keys
ファイルを開きます。このファイルに公開鍵を貼り付けて保存します。
SSHキー ペアをテスト: SSHキー ペアが正しく設定されているかテストするには、SSHを使用してサーバーに接続してみてください:ssh user@server_ip
。すべてが正しく構成されていれば、パスワードを入力することなくプライベートキーを使用して認証され、ログインできるはずです。
プライベートキーの保護: プライベートキーはSSHキー ペアの中で最も重要な部分です。アクセスを制限して安全に保ち、許可されていない個人と共有しないでください。プライベートキーファイルへの読み取りおよび書き込みアクセスを制限するために、ファイルの権限を使用することをお勧めします。
パスフレーズの保護: SSHキー ペアを生成する際にパスフレーズの使用を選択できます。これにより、プライベートキーを暗号化する追加のセキュリティ層が得られます。推測が容易でない強固なパスフレーズを選び、一般的な単語やフレーズの使用を避けてください。
SSHキーの定期的な更新とローテーション: 不正アクセスのリスクを最小限に抑えるため、SSHキーを定期的に更新およびローテーションすることが推奨されます。特に、SSHキーが侵害されたり、アクセス権を持つスタッフが組織を離れた場合は重要です。鍵を定期的にローテーションすることで、セキュリティを向上させ、鍵が侵害された場合の影響を軽減します。
公開鍵暗号: 公開鍵暗号は、暗号化と復号のためのキーのペアを使用するシステムで、安全でないチャネルを介した安全な通信を可能にします。SSHキーの基礎技術です。
マルチファクター認証 (MFA): マルチファクター認証は、システムへのアクセスにパスワードやSSHキーなど、2つ以上の検証形式を要求するセキュリティ方法です。これにより、追加のセキュリティ層が追加され、不正アクセスのリスクが軽減されます。