SSH2 と OpenSSH

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 を付けることで指定できます。

プロトコルバージョン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

クライアント(ローカルホスト)における秘密鍵用の鍵束と、 サーバ(リモートホスト)における公開鍵用の鍵束があります。

OpenSSH

SSH2 サーバに OpenSSH クライアントでアクセス

やるべきことは、OpenSSH クライアント(ホスト名 open_client) で作った秘密鍵から SSH2 用の公開鍵を作成し、 SSH2 サーバ(ホスト名 ssh2_server)の ~/.ssh2に置くことです。

  1. open_client で SSH2 用公開鍵を作る
    %open_client> ssh-keygen -x -f ~/.ssh/id_dsa > open_client.pub
    作成する公開鍵のファイル名 open_client.pub は自由です。
  2. 上の手順に従って、open_client.pub を ssh2_server にコピーし、 ssh2_server で open_client.pub を ~/.ssh2/authorization に追加します。

OpenSSH サーバに SSH2 クライアントでアクセス

やるべきことは、SSH2 クライアント(ホスト名 ssh2_client) で作った公開鍵から OpenSSH 用の公開鍵を作成し、 OpenSSH サーバ(ホスト名 open_server)の ~/.sshに置くことです。

  1. ssh2_client:~/.ssh2/id_dsa_1024_a.pub を open_server にコピーする
  2. 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
ssh-keygen で変換するときのオプションは -X ではなく -i の場合もあります。

参考ページ


FreeBSD の部屋


Last modified: Wed Apr 20 16:09:21 JST 2011