2004年08月25日

ssh-agent

ssh-agent のことを今まで誤解して理解していました。
ssh-agent はパスフレーズの入力無く、ssh を利用するためのもので (ここまでは正解)
スクリプトなどを使った通信のときに使うためのものだと思っていました (やや誤解)
ですが、実際は、公開カギ認証の ssh を利用する際に、
複数回のパスフレーズの入力を必要とせずに使うためのものでした。
これは大変便利です。

そして、さらに重要な機能があり、
私にとってはこれが ssh-agent を利用する目的だといっても過言ではありません。
それは認証転送機能。

あるサーバ A を踏み台にして他のサーバ B に ssh でアクセスするというとき、
通常ならば、クライアントにも A のサーバにも秘密カギを置いておかなければなりません。
A のサーバの root を複数名で使えるとき、
これでは 「暗号化路で保護されている」 という機能しか ssh は提供できません。
(複数名が A の root になりうるなら個人の秘密カギを複数名が利用できるということに他ならないため)
もちろん、パスフレーズで秘密カギが保護されては居ますが、
それ以外の保護がなくなってしまうため、
セキュリティ的 (というよりはプライバシー的に?) にはかなり好ましくありません。

それを考えて、私は 「ヤダなー」 と思って、
まわりの人に聞いてみた結果 ssh-agent を知ったわけです。
ssh-agent に ssh (クライアント) の認証転送機能を用いることで、
クライアントだけに秘密カギをおいて、A には秘密カギを置かなくてもいいという
機能があることがわかりました!!
これはステキです。
ssh (クライアント) の設定で認証転送機能が有効にされていないといけませんが
(OpenSSH のデフォルトでは無効でした)
それだけでオッケーです。
ssh の踏み台を使う人は既にご存知の人も多いとは思いますが、
ぜひともご利用ください☆
詳しい話は ↓ この辺が参考になると思います。
http://www-6.ibm.com/jp/developerworks/linux/020426/j_l-keyc3.html

使い方は
$ ssh-agent
$ ssh-add
$ ssh -A -2 サーバ
って感じです。
ssh には -A オプションを忘れないでくださいね。
( /etc/ssh_config に設定してもオッケーです)

ちょっと賢くなった今日でした♪

Posted by k-square : 2004年08月25日 22:41 | Linux/UNIX
コメント
コメントする









名前、アドレスを登録しますか?