公開鍵暗号方式によるパスワード無しの ssh 接続について

(LastUpdate: 14-May-2002)
(c) Copyright 2002 by Hirofumi Fujii

公開鍵暗号方式を使って、パスワード無しで ssh 接続を 行う方法について概説する。なお、この方法は、クライアント 計算機は絶対に自分しか使わない、人に使われることは絶対 ない(鍵のかかっている自分の個室に置いてあるとか)という 条件が満たされていることが条件である。

以下、サーバ、クライアント共に OpenSSH 3.1p1 を使うもの として説明する。

なお、筆者によるクライアントプログラムの調査結果については

を参照のこと。


SSH Protocol 1 を使う場合

クライアント側で、

% ssh-keygen -t rsa1
とする。この時、Passphrase は無しにする(Passphrase をつけると、 ssh 接続を行う度に Passphrase を尋ねてくる)。 すると、$HOME/.sshidentityidentity.pub というファイルが できる。前者が秘密鍵、後者が公開鍵のファイルである。

秘密鍵は自分(クライアント側)の $HOME/.ssh に置く。 ssh-keygen をクライアン側で実行していれば、何も しなくても、ここに作られているはずである。

公開鍵の方は、サーバの自分の $HOME/.ssh にある authorized_keys というファイルに付け加える。もし、authorized_keys というファイルが無ければ、identity.pub$HOME/.ssh へコピーした後、ファイル名を authorized_keys に 変更すればよい。

もし、authorized_keys が既に存在していて、 新たに付け加える場合は、例えば

% cd ~/.ssh
% cat identity.pub >> authorized_keys
などとして付け加える。


SSH Protocol 2 を使う場合

基本的には上で述べた SSH Protocol 1 の場合と同じである。 生成は、

% ssh-keygen -t rsa
とする。

違うのは、生成される鍵ファイルの名前が id_rsaid_rsa.pub になっていること である。id_rsaが秘密鍵、id_rsa.pub が 公開鍵のファイルである。

上と同じ要領で、id_rsa を 自分(クライアント)側の $HOME/.ssh に置き、 id_rsa.pub をサーバの 自分の $HOME/.sshauthorized_keys に付け加える。