SSH2 と OpenSSH の運用の仕方、および混在する環境での鍵管理の仕方です。 ここでは、両方の総称として SSH と言います。
SSH では、ssh-keygen(2) コマンドを使って クライアント(ローカルホスト)で鍵を作ります。 秘密鍵と公開鍵という2種類が一緒にできます。 このうち、公開鍵の方をサーバ(リモートホスト)に持っていき、 認証に使います。
SSH2
SSH2 では ssh-keygen2 で作ります。 ssh-keygen という名前でエイリアスが作られているかも知れません。
% ssh-keygen2
Passphrase : (Passphrase を入力する)
Again : (Passphrase をもう一度入力する)
OpenSSH
OpenSSH では、3種類の鍵を作ることができます。 それぞれ、ssh-keygen にオプション -t を付けることで指定できます。
- プロトコルバージョン1 の RSA 鍵
% ssh-keygen -t rsa1
- プロトコルバージョン2 の RSA 鍵
% ssh-keygen -t rsa
- プロトコルバージョン2 の DSA 鍵
% ssh-keygen -t dsa
プロトコルバージョン2 の DSA 鍵が一番安全度が高いそうです。
できあがる鍵の名前は、デフォルトでは以下の表の通りです。
秘密鍵 公開鍵 秘密鍵の鍵束 公開鍵の鍵束 SSH2 id_dsa_1024_a id_dsa_1024_a.pub ~/.ssh2/identification ~/.ssh2/authorization OpenSSH RSA1 identity identity.pub ~/.ssh/authorized_keys RSA id_rsa id_rsa.pub DSA id_dsa id_dsa.pub 秘密鍵やその鍵束は、他人に見られないようにパーミッションを切っておきます。
などなど。
% chmod 600 ~/.ssh2/id_dsa_1024_a
% chmod 600 ~/.ssh2/identification
% chmod 600 ~/.ssh/identity
% chmod 600 ~/.ssh/id_?sa
% chmod 600 ~/.ssh/authorized_keys
SSH2
クライアント(ローカルホスト)における秘密鍵用の鍵束と、 サーバ(リモートホスト)における公開鍵用の鍵束があります。
- 秘密鍵用の鍵束
~/.ssh2 というディレクトリの下に identificationというファイルを作り、 そこに秘密鍵のリストを次のように書きます。
IdKey id_dsa_1024_a
- 公開鍵用の鍵束
- クライアントから公開鍵をコピーして持ってくる。
この鍵ファイルの名前を client.pub としておきます。- client.pub を ~/.ssh2 というディレクトリの下に置く。
- authorizationというファイルを作り、 公開鍵のリストを次のように書きます。
Key client.pub
OpenSSH
- 公開鍵用の鍵束
- クライアントから公開鍵をコピーして持ってくる。
この鍵ファイルの名前を client.pub としておきます。- client.pub を ~/.ssh というディレクトリの下に置く。
- authorized_keysというファイルを作り、 client.pub を authorized_keys に追加します。
無事追加されたら、client.pub は消してしまって構いません。
%~/.ssh> cat client.pub >> authorized_keys
やるべきことは、OpenSSH クライアント(ホスト名 open_client) で作った秘密鍵から SSH2 用の公開鍵を作成し、 SSH2 サーバ(ホスト名 ssh2_server)の ~/.ssh2に置くことです。
- open_client で SSH2 用公開鍵を作る
作成する公開鍵のファイル名 open_client.pub は自由です。
%open_client> ssh-keygen -x -f ~/.ssh/id_dsa > open_client.pub
- 上の手順に従って、open_client.pub を ssh2_server にコピーし、 ssh2_server で open_client.pub を ~/.ssh2/authorization に追加します。
やるべきことは、SSH2 クライアント(ホスト名 ssh2_client) で作った公開鍵から OpenSSH 用の公開鍵を作成し、 OpenSSH サーバ(ホスト名 open_server)の ~/.sshに置くことです。
ssh-keygen で変換するときのオプションは -X ではなく -i の場合もあります。
- ssh2_client:~/.ssh2/id_dsa_1024_a.pub を open_server にコピーする
- open_server で SSH2 用公開鍵を作り、鍵束に入れておく
%open_server> ssh-keygen -X -f id_dsa_1024_a.pub >> ~/.ssh/authorized_keys
%open_server> chmod 600 ~/.ssh/authorized_keys
%open_server> rm id_dsa_1024_a.pub