Linuxサーバへのssh接続(3)Linux端末からの接続

学内のLinuxマシンから学外のLinux仮想サーバーへ、公開鍵認証によるssh接続の方法を説明します。公開鍵と秘密鍵のペアを作成し、秘密鍵は手元のPCに置き、公開鍵をサーバー管理者に送って、サーバーにアカウントを用意してもらいます。

1. ssh-keygenコマンドによる鍵の作成

$ ssh-keygen -t rsa

とコマンドを入力すると、鍵ファイルの名前をどうするか聞かれる。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/******/.ssh/id_rsa):

デフォルトのファイル名でよければ何も入力せずにenterキーを押す。すると鍵ファイル使用時に聞かれるパスフレーズの入力を求められる。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/******/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

2回パスフレーズを入力すると、以下のようなメッセージが出力され、コマンドプロンプトが復帰する。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/******/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/******/.ssh/id_rsa.
Your public key has been saved in /home/******/.ssh/id_rsa.pub.
The key fingerprint is:
**************************************************************
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|        + =      |
|       . X O     |
|        B S o    |
|     o o @ .     |
|      + E o .    |
|       . .       |
|                 |
+-----------------+

2. サーバ管理者へ公開鍵を送付

~/.ssh ディレクトリに公開鍵がテキスト形式で生成される(デフォルトはid_rsa.pub)。このファイルをサーバー管理者に送る。

3. .ssh/configの編集

接続先の情報を.ssh/configファイルに登録しておく。Hostには接続するサーバのエントリー名を適当に指定する。Hostnameには接続先のサーバのipアドレスもしくはURL、Userには接続先のアカウントのユーザIDを記入する。IdentityFileにはたった今作った秘密鍵を指定する。

Host aws
    Hostname ***.***.***.***
    User *******
    IdentityFile ~/.ssh/id_rsa

4. sshサーバへの接続

サーバ管理者から公開鍵登録完了の通知を受けたら、登録したエントリー名を指定してsshコマンドを入力する。

$ssh aws

パスフレーズの入力を求められたら、鍵生成時に決めたパスフレーズを入力すること。
以上で接続完了。