SSHのための公開鍵認証の設定: ステップバイステップガイド

公開鍵認証は、パスワードを使用せずにリモートマシンにログインするための安全な方法です。各認証のためにパスワードを入力する代わりに、公開鍵と秘密鍵のペアを使用します: 公開鍵はリモートマシンに存在し、秘密鍵はローカルデバイスに保存されます。このブログ記事では、LinuxシステムでのSSH用の公開鍵認証を設定する簡単なプロセスを案内します。

なぜ公開鍵認証を使用するのか?

  • セキュリティの向上: 推測されたり傍受されたりする可能性のあるパスワードとは異なり、公開鍵暗号は非常に安全です。
  • 利便性: 一度設定すれば、リモートマシンへのログインが迅速になり、より少ない労力で済みます。

ステップバイステップの手順

ステップ1: 鍵の生成

まず、秘密鍵と公開鍵のペアを作成する必要があります。ターミナルを開いて、以下のコマンドを実行します:

ssh-keygen

このコマンドは鍵生成プロセスを案内します。デフォルトでは、次の2つのファイルが作成されます:

  • id_rsa: あなたの秘密鍵(これは安全に保管!)
  • id_rsa.pub: あなたの公開鍵(これが共有する鍵です)

ステップ2: 公開鍵をリモートマシンへコピー

次に、あなたの公開鍵をリモートマシンに転送する必要があります。これは、ログインしたいリモートサーバーへのアクセスが必要です。id_rsa.pubファイルの内容をリモートサーバーの~/.ssh/authorized_keysファイルに追加する必要があります。以下のコマンドを使って、効率よく行うことができます(リモートマシンにログイン後に実行):

echo "your-public-key" >> ~/.ssh/authorized_keys

注意: “your-public-key"をあなたのid_rsa.pubファイルからの実際の内容に置き換えてください。

ステップ3: セキュリティのための権限設定

秘密鍵を安全に保存するために、正しい権限を設定する必要があります。ローカルで次のコマンドを実行します:

chmod 600 ~/.ssh/id_rsa*

そして、リモートマシンでは、次のように認証鍵ファイルの権限を設定します:

chmod 600 ~/.ssh/authorized_keys

これらのコマンドは、他のユーザーに対して鍵へのアクセスを制限します。

ステップ4: 設定のテスト

これで、設定をテストする準備ができました!SSHコマンドを使用してリモートマシンに接続します:

ssh username@remote.machine

すべてが正しく設定されていれば、リモートユーザーのパスワードを尋ねるのではなく、秘密鍵のパスフレーズを尋ねてきます。

ステップ5: 便利さのためのSSH-Agentの使用

接続するたびに鍵のパスフレーズを入力するのは面倒になる可能性があります。プロセスを簡素化するために、ssh-agentを使用して、復号化された鍵をメモリ内に保持できます。以下の手順で設定します:

  1. ssh-agentを次のコマンドで起動します:

    eval $(ssh-agent)
    

    既に実行中かどうかを確認するには、次のコマンドを実行します:

    echo $SSH_AUTH_SOCK
    
  2. エージェントに秘密鍵を追加します:

    ssh-add ~/.ssh/id_rsa
    

    パスフレーズを一度入力すれば、エージェントから削除するまで再度入力する必要はありません。

  3. エージェントから鍵をクリアする必要がある場合は、単に次のコマンドを実行します:

    ssh-add -D
    

結論

SSHのための公開鍵認証を設定することは、リモートシステムへのアクセス時のセキュリティと効率を強化する強力な方法です。これらの手順に従うことで、安全でパスワード不要の環境を作成し、時間を節約し、従来のパスワード認証に伴うリスクを減らすことができます。

これでリモートマシンに安全かつ簡単にログインできるようになりました!公開鍵認証を設定する際は、このガイドに気軽に戻って参照してください。