OpenSSHとSSH2の相互接続
OpenSSH Clientでの鍵作成
OpenSSHでは、以下のように"ssh-keygen"を呼び出すだけで、ユー
ザー認証用の秘密鍵/公開鍵が作成されます。途中でパスワード入力を求めら
れますが、空でも構いません。実行すると、秘密鍵( ~/.ssh/id_rsa )と公開
鍵( ~/.ssh/id_rsa.pub )が作られます。
$
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/someone/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/someone/.ssh/id_rsa.
Your public key has been saved in /home/someone/.ssh/id_rsa.pub.
The key fingerprint is:
11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee:ff [email protected]
上記のようにして作った公開鍵( id_rsa.pub )は、OpenSSH Serverで認証に使
うための鍵です。SSH2 Serverで公開鍵認証をするためには、OpenSSHのインス
トールされている計算機で鍵をSSH2用公開鍵に変換し、できたSSH2用の鍵を
SSH2 Serverに転送して使います。
$ ssh-keygen -e -f ~/.ssh/id_rsa > id_rsa_ssh2.pub
SSH2 Clientでの鍵作成
SSH2 Clientがインストールされている場合の公開鍵の作り方を説明します。
今度は、コマンドが"ssh-keygen2"になります。
$
ssh-keygen2 -t rsa
Generating 2048-bit rsa key pair
9 oOo.oOo.oOo
Key generated.
2048-bit rsa, [email protected], Sat Jan 01 2000 00:00:00 +0900
Passphrase :
Again :
Private key saved to /home/someone/.ssh2/id_rsa_2048_a
Public key saved to /home/someone/.ssh2/id_rsa_2048_a.pub
SSH2ではOpenSSHと違い、鍵を作っただけではダメで、使用する秘密鍵を登録
する必要があります。具体的には、以下のようにidkeyに続いて秘密鍵のファ
イル名を書いた、"~/.ssh2/identification"ファイルを作成します。
idkey id_rsa_2048_a
最後に、SSH2の公開鍵をOpenSSH Server用の鍵に変換する方法を書きます。
SSH2側では変換することができないので、まずOpenSSHがインストールされて
いる計算機に公開鍵(id_rsa_2048_a.pub)を転送します。続いて、以下のよう
にしてOpenSSH用の公開鍵に変換します。
$ ssh-keygen -i -f id_rsa_2048_a.pub > id_rsa_openssh.pub
OpenSSH Serverでの公開鍵認証設定
次に、サーバー側の設定をしましょう。ログインしたいサーバーがOpenSSHを
使っている場合、クライアントの公開鍵をサーバーに転送して、
"~/.ssh/authorized_keys"に書き足せば次のログインから公開鍵
認証が行われます。手順としては以下のようになります。
$
cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat >> ~/.ssh/authorized_keys"
someone@openssh-server's password:
ちなみに、SSH2 ClinentからOpenSSH Serverなら一度scpでキーをコピーして
から、サーバーで鍵フォーマットの変換をする必要がありす。
$
scp ~/.ssh/id_rsa_2048_a.pub [email protected]:~/id_rsa_client1.pub
someone@openssh-server's password:
$
ssh [email protected]
someone@openssh-server's password:
%
ssh-keygen -i -f id_rsa_client1.pub >> ~/.ssh/authorized_keys
%
exit
SSH2 Serverでの公開鍵認証設定
SSH2 Serverでは、公開鍵を直接ファイルに書き足すのではなく、公開鍵ファ
イル名をサーバーの"~/.ssh2/authorization"に書き足すようになっ
ています。具体的には以下のような手順になります。
$
scp ~/.ssh/id_rsa_2048_a.pub [email protected]:~/.ssh2/id_rsa_client1.pub
someone@ssh2-server's password:
$
ssh [email protected]
someone@ssh2-server's password:
%
echo "key id_rsa_client1.pub" >> ~/.ssh2/authorization
%
exit
まとめ
最後に手順を大まかにまとめておきます。
- OpenSSH Client -> OpenSSH Serverへのログイン
-
client:~/.ssh/id_rsa.pubをserver:~/.ssh/authorized_keysに付け足す。
- OpenSSH Client -> SSH2 Serverへのログイン
-
client:~/.ssh/id_rsaをSSH2用の鍵に変換し、それをserver:~/.ssh2/id_rsa_hogehoge.pubにコピーする。さらに、server:~/.ssh2/authorizationファイルにid_rsa_hogehoge.pubを登録。
- SSH2 Client -> OpenSSH Serverへのログイン
-
client:~/.ssh2/id_rsa_2048_a.pubをサーバーにコピする。サーバーで、SSH2鍵->OpenSSH鍵に変換して、server:~/.ssh/authorized_keysに付け足す。
- SSH2 Client -> SSH2 Serverへのログイン
-
client:~/.ssh2/id_rsa_2048_a.pubをserver:~/.ssh2/id_rsa_hogehoge.pubにコピーする。さらに、server:~/.ssh2/authorizationファイルにid_rsa_hogehoge.pubを登録。
ご意見、ご感想は、花房
真広 <[email protected]>まで。メールする前にtop pageの注意書を読んでください。