公開鍵暗号方式を使って、パスワード無しで ssh 接続を 行う方法について概説する。なお、この方法は、クライアント 計算機は絶対に自分しか使わない、人に使われることは絶対 ない(鍵のかかっている自分の個室に置いてあるとか)という 条件が満たされていることが条件である。
以下、サーバ、クライアント共に OpenSSH 3.1p1 を使うもの として説明する。
なお、筆者によるクライアントプログラムの調査結果については
クライアント側で、
% ssh-keygen -t rsa1とする。この時、Passphrase は無しにする(Passphrase をつけると、 ssh 接続を行う度に Passphrase を尋ねてくる)。 すると、$HOME/.ssh に identity と identity.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 1 の場合と同じである。 生成は、
% ssh-keygen -t rsaとする。
違うのは、生成される鍵ファイルの名前が id_rsa と id_rsa.pub になっていること である。id_rsaが秘密鍵、id_rsa.pub が 公開鍵のファイルである。
上と同じ要領で、id_rsa を 自分(クライアント)側の $HOME/.ssh に置き、 id_rsa.pub をサーバの 自分の $HOME/.ssh の authorized_keys に付け加える。