Q. SSH プロトコル 2 の DSA 公開鍵暗号を使った認証で ssh(1) を運用した いのですが、どうしたらいいでしょうか? A. サーバ側の設定は終っているものとして説明します。FreeBSD の場合、 /etc/rc.conf に sshd_enable="YES" という設定をいれておけば SSH2 の DSA 認証が使えます。 まずローカルホストで ssh-keygen(1) を実行し、認証鍵を作成します。 この際に秘密鍵を保護するためのパスフレーズが尋ねられます。 パスフレーズは自由に決められ、バージョンによってはパスフレーズなしでも 運用が可能ですが、他人が推測しにくく、できるだけ長いもの (数十文字でも構いません。)にしましょう。 % ssh-keygen -d Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): (リターン) Enter passphrase (empty for no passphrase): (パスフレーズを入力) Enter same passphrase again: (再度同じパスフレーズを入力) Your identification has been saved in /home/user/.ssh/id_dsa. Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx user@local などとします(なお、4.3-RELEASE などの FreeBSD の一部のバージョンで は、2.3 ベースの OpenSSH を採用しているため上記実行例は 多少異なります)。 あるいは OpenSSH 2.9 ベースの ssh を使用している FreeBSD でなら % ssh-keygen -t dsa などとします。 次に slogin(1) ないしは ssh(1) でリモートホストにログインし、 相手先の ~/.ssh/authorized_keys2 に公開鍵 (ローカルにできた ~/.ssh/id_dsa.pub) の内容をそのままコピーし追加します。 このとき、公開鍵一つにつき一行なので、余計な改行や空白を入れないよ うに注意します。もし ~/.ssh/authorized_keys2 がなければ新規作成しま す。理論上はこれは公開鍵なので人に見られても構いませんし、事実 ssh-keygen(1) の man page にもそのような記述がありますが、念のため % chmod 600 ~/.ssh/authorized_keys2 とパーミッションは落としておいたほうが無難です。 また、OpenSSH 2.9 ベースの ssh がインストールされている場合には、 プロトコル 2 の RSA も使えます。異なるのは % ssh-keygen -t rsa として認証鍵を作成し、あとは DSA 鍵の場合と同様に ~/.ssh/id_rsa.pub をリモートホストに転送し、~/.ssh/authorized_keys2 に追加します。 パスフレーズ以外では、ssh・scp・slogin の使い方は rsh・rcp・rlogin と ほぼ同じです。 [管理番号 1576] rsh・rlogin・rcp って何ですか。 を参考にして下さい。 毎回パスフレーズを入力しなくてもすむ方法については [管理番号 1578] で、 より便利な ssh の機能については [管理番号 1579] で解説しています。
グループ名: ssh