SSHで接続するための公開鍵を作成してサーバへ接続する

SSH 接続のための公開鍵を作成して、サーバーアクセスできる方法です。

どんなサーバ向け?

AWS、GCP、Azure などでは、代替となる接続方法がありますので、そちらを利用します。主に、SSH で接続する必要のある、各社レンタルサーバやオンプレミスのサーバへ接続で使います。レンタルサーバによっては、ID/Passwordの接続しか提示されていないことも多いですが、公開鍵を利用して利用することができるサービスも多くあります。

SSH キーペアを作成する

以下のコマンドを実行して SSH キーペアを作成します。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/my_ssh_key

オプションについては、下記のとおりです。

-t rsa : RSA アルゴリズムを使用。

-b 4096 : 4096 ビットの鍵長を指定。鍵長が長いほど暗号強度が向上し、通常は 2048 ビットまたは 4096 ビットが推奨されます。

-C “your_email@example.com" : キーにコメントを付与(任意)。識別のためにメールアドレスを指定するのが一般的です。

-f ~/.ssh/my_ssh_key : 出力するファイル名を指定。

コマンドを実行すると、パスフレーズを聞かれます。設定する場合は入力、しない場合は Enter で進めます。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

my_ssh_key と my_ssh_key.pub の2ファイルが作成されます。

公開鍵をサーバにコピーする

SSH キーペアが作成されたら、公開鍵 (my_ssh_key.pub) をサーバにコピーします。
USER はサーバへログインするユーザ名、SERVER_IP はサーバのIPアドレスに置き換えてください。

ssh-copy-id -i ~/.ssh/my_ssh_key.pub USER@SERVER_IP

サーバの .ssh/authorized_keys に追加されます。
直接 authorized_keys に my_ssh_key.pub の内容を追記する方法もあります。

SSH 接続をテストする

公開鍵を設定したら、SSH 接続をテストします。

ssh -i ~/.ssh/my_ssh_key USER@SERVER_IP

SSH 設定を簡単にする(~/.ssh/config)

接続情報を設定しておくことにより、簡単に接続できるようになります。

echo "
Host myserver
    HostName SERVER_IP
    User USER
    IdentityFile ~/.ssh/my_ssh_key
" >> ~/.ssh/config

この設定を追加すると、次回以降は以下のように簡単に接続できます。

ssh myserver