OpenSSHメモ

作成 2002/07/27
更新 2002/10/26

組み込みのOpenSSHを使う

FreeBSDにはすでにOpenSSHが組み込まれています。「/etc/rc.conf」にOpenSSHに関する3つの設定項目があるので、以下のように設定します。

sshd_enable="YES"
sshd_program="/usr/sbin/sshd"
sshd_flags=""

この設定だけでOpenSSHが自動起動しSSHログインが可能となります。これでは通信は暗号化されますが、ユーザ名とパスワードさえ分かればどのホストからでもログイン可能なので、telnetとたいして変わりはありません(プレーンテキストログイン)。
そこで、プレーンテキストログインを拒否してRSAカギを使用して認証するように設定します。設定ファイルは「/etc/ssh/sshd_config」です。

RSAAuthentication yes
PasswordAuthentication no

1行目でRSAカギを使用した認証を許可して、2行目で通常のパスワード認証を拒否するようにしています。

portsのOpenSSHを使う

OpenSSHはバグやセキュリティホールが多いことで有名です。しかし、報告された問題はスグに修正されパッチや新しいバージョンがでます。FreeBSDに組み込まれているOpenSSHはOSに付属している以上、常に最新というわけではありません。しかし問題をそのままにしておくわけにもいきません。そこでportsのOpenSSHを変わりに使用することにより常に最新のOpenSSHにすることが可能です。

# cd /usr/ports/security/openssh
# make install
# make clean

以上でインストールが可能です。次にFreeBSDが使用するSSHの設定を変えます。「/etc/rc.conf」に以下の設定を行います。

sshd_enable="YES"
sshd_program="/usr/local/sbin/sshd"
sshd_flags=""

設定ファイルもFreeBSD付属のものではなく、「/usr/local/etc/ssh」の中のものを編集することになります。それ以外はFreeBSD付属のものを使用するのとまったく同じです。
また、「/etc/rc.conf」ではSSHを設定せずに起動スクリプトを使用してOpenSSHを起動させることもできます。「/etc/rc.conf」を以下のように設定します。

sshd_enable="NO"

サンプルの起動スクリプトをコピーして使用します。

# cp /usr/local/etc/rc.d/sshd.sh.sample /usr/local/etc/rc.d/sshd.sh

どちらかというと私はこちらが好みです。

RSAカギを作成する

ログインするためにRSAカギを作成しましょう。ここでSSH1を使用するかSSH2を使用するかでオプションが違ってきます。使用するクライアントによって変えましょう。ログインしたユーザで実行しなくてはなりませんが、いちいちログインしなおしたりも面倒なので「su」でやりましょう(なぜかコレを知らない人が多いのが不明)。

SSH1用の秘密カギの生成

# su hoge
# ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/hoge/.ssh/identity): エンターキーを押す
Created directory '/home/hoge/.ssh'.
Enter passphrase (empty for no passphrase): パスフレーズを入力
Enter same passphrase again: パスフレーズを入力
Your identification has been saved in /home/hoge/.ssh/identity.
Your public key has been saved in /home/hoge/.ssh/identity.pub.
The key fingerprint is:
-----秘密な文字列----- hoge@

SSH2用の秘密カギの生成

# su hoge
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa): エンターキーを押す
Created directory '/home/hoge/.ssh'.
Enter passphrase (empty for no passphrase): パスフレーズを入力
Enter same passphrase again: パスフレーズを入力
Your identification has been saved in /home/hoge/.ssh/id_rsa.
Your public key has been saved in /home/hoge/.ssh/id_rsa.pub.
The Key fingerprint is:
-----秘密な文字列----- hoge@

実行すると、以下のファイルがホームディレクトリに作成されます。

.ssh/id_rsa SSH2の秘密カギファイル
.ssh/id_rsa.pub SSH2の公開カギファイル
.ssh/identity SSH1の秘密カギファイル
.ssh/identity.pub SSH1の公開カギファイル

それぞれの秘密カギファイルをクライアントにコピーして使用することになります。

使用するクライアントによってカギを使い分けることになるのですが、Windowsでよく使われているTeraTermPro+TTSSHはSSH1しか対応しておりません。SSH2を使用したい場合はPuTTY+日本語パッチをお勧めします。


モドル