SSH公開鍵の設置

2012/01/29

『改訂新版 基礎Ruby on Rails』 読者サポートページ > Rails本番環境構築ガイド

以下、リモートマシンにSSH公開鍵を設置し、パスワードを入力しないでSSHでログインできるようにします。

SSH鍵ペアの作成

まだSSH鍵ペア(秘密鍵と公開鍵)を作成していない場合は、以下の手順で作成します。

ローカルマシン(あなたのPC)でターミナルを開いてください。

Windowsユーザーの方は、MinGW Shell を開いてください。MinGW をまだインストールしていない方は、MinGWのインストールをご覧ください。

次のコマンドを実行します。

$ ssh-keygen

鍵ペアを保存するパスを尋ねられます。基本的にはそのままEnterキーを押せば大丈夫ですが、必要なら変更してください。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/kuroda/.ssh/id_rsa): 

続いて、秘密鍵を解くためのパスフレーズを尋ねられます。

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

このパスフレーズとサーバにログインする時のパスワードは無関係です。なるべく別のものにしてください。空のままにするのはお勧めしません。

~/.ssh ディレクトリに秘密鍵(id_rsa)と公開鍵(id_rsa.pub)ができています。

SSH公開鍵の設置

scp コマンドで、ローカルマシンからリモートマシンに公開鍵を転送します。

$ scp -P 1022 .ssh/id_rsa.pub kuroda@example.com:~

ポート番号を指定するオプションは -P (大文字のP)です。デフォルトの22番を使っている場合は、省略可能です。また、ローカルマシンのユーザー名とリモートマシンのログイン名が同じである場合は、kuroda@ の部分も省略可能です。

ssh コマンドでリモートマシンに接続します。

$ ssh -p 1022 kuroda@example.com

ポート番号を指定するオプションは -p (小文字のp)です。デフォルトの22番を使っている場合は、省略可能です。また、ローカルマシンのユーザー名とリモートマシンのログイン名が同じである場合は、kuroda@ の部分も省略可能です。

以下のコマンドを順に実行します。

% mkdir --mode=700 .ssh
% cat id_rsa.pub >> .ssh/authorized_keys
% chmod 600 .ssh/authorized_keys
% rm id_rsa.pub

SSHクライアントの設定ファイル

ローカルマシンで ~/.ssh/config ファイルを開き(まだ存在しないかもしれません)、末尾に次のような内容を追加します。

Host *
  ForwardAgent yes
  ServerAliveInterval 300

動作確認

ローカルマシンからリモートマシンに接続します。

$ ssh -p 1022 kuroda@example.com

パスワードを尋ねられずにリモートマシンに接続できればOKです。

SSH秘密鍵を解くためのパスフレーズは尋ねられます。これは正常な動きです。

目次