FreeBSDなどでsshdの設定の変更をしたりします。
セキュリティ対策などで、色々厳しい設定に変更をしたりするのです。sshでアクセスしてるマシンでコンソールサーバなんかに繋がっていない環境で、物理的に離れた距離にあるサーバだと、このsshdの設定ミスで、sshdを再起動したらそのサーバにログインできなくなったとかいう事態に陥ってしまって困ったとか、危ないから設定したくないという心境にとらわれたりするのではないでしょうか?
sshdが落ちても大丈夫なように、 inetd + telnetd をしょうがないから上げておくというのもありかもしれませんが、あまりやりたくありません。
というわけで、 sshd の設定を変更するときは、 通常の接続で利用している sshd とは別に、他のポートで sshd をもう1つ起動してしまいましょう。
sshd は、 -p オプションで ポートを指定することができます。
また、 -D オプションを付ければ、デーモン化せずに起動することができます。
デーモン化してしまうと、あとで、どのsshdを殺していいのか、調べるのが面倒だったり、間違って殺してしまう可能性があるので、お勧めできません(なにせ安全対策の勧めなので)。
/etc/ssh/sshd_config をいきなり書き換えてしまうのも、なにかあると大変なので、とりあえず、コピーしてからそのファイルを編集し、sshdの-fオプションでコピーしたファイルを指定して起動しましょう。
ホストキーの読み込みが必要なので、 /etc/ssh/ssh_host_dsa_key を読ませる場合には、sudo (rootで起動)で起動するか、 ホストキーを別に作成して、 -h オプションで新しいキーを指定してください。
sudo cp /etc/ssh/sshd_config{,TEST}
sudo vi /etc/ssh/sshd_config.TEST
sudo /usr/sbin/sshd -f /etc/ssh/sshd_config.TEST -p 40022 -D
これで sshd_config.TEST を読み込み、 ポート 40022 でデーモン化していない sshd を起動することができます。
このコマンドラインで起動したsshd は、C-c(コントロール c) で sshd を終了することができます。
sshdを起動したホストが foo の場合
ssh -p 40022 foo
で接続することが可能です。
これで安全に sshd の設定をテスト・更新することができます。
設定の反映方法については、下記のページを参考にしてください。
[2008-02-18-1] sshdの設定を反映する方法
ssh関連の記事
[2008-08-17-1] CentOSでsshdの設定をリロードする方法
[2008-05-26-2] sshによるリモートアクセスを見分ける方法 SSH_CONNECTION SSH_CLIENT
[2008-02-20-2] セキュリティ sshでknown_hostsに登録するか聞かれなくする方法
[2008-02-20-1] sshブルートフォースアタックを防ぐiptablesを使ったblocksshd
[2008-02-18-2] sshdでsshできるユーザを制限する方法
[2008-02-10-1] 複数のPuTTYをタブ化して管理するPutty Connection Manager
[2007-10-19-1] sshでログインしたときにコマンドを実行する方法
[2007-10-18-1] sshのauthorized_keysでコマンドを限定する方法
[2007-10-05-1] sshのauthorized_keysで仮想端末を取得させない設定 no-pty
[2007-10-04-1] sshのauthorized_keysで接続元を制限をする方法
[2007-10-03-1] ssh パスフレーズなしの秘密鍵でログインする
[2007-09-30-1] sshの接続を共有する方法
[2007-05-25-4] sshでホスト認証鍵を追加するか聞かれたくないとき