sshdで2つのポートを使い分ける

sshdで2つのポートを使い分けたい場合があるかもしれません.例えば,ポート22では鍵を使わないとloginできないようにして他のポートでは鍵が無くてもパスワードだけでloginできるようにしたい時など.

参考URL(というかほぼそのまま)
http://www.freebsddiary.org/ssh-higher-port.php

今回はポート22番では鍵が無いと入れないようにして,ポート57431番では鍵が無くてもパスワードのみで入れないように設定して見ました.

まず,openssh-portableのインストール

 cd /usr/ports/security/openssh-portable/
 make install clean

次に22番のための鍵作成

ssh-keygen
cd ~/.ssh
cat id_rsa.pub >authorized_keys
id_rsaをscp
rm id_rsa id_ras.pub

ポート57431番の設定ファイルの作成

cd /usr/local/etc/ssh/
cp sshd_config sshd_config_higher_port

22番でパスワード認証を無くす

vi sshd_config
ListenAddress ***.***.**  #ここでIPを指定しないと動かなかったので指定
PasswordAuthentication no 
ChallengeResponseAuthentication no

ポート57431番の設定ファイルの作成

Port 57431
ListenAddress ***.***.**  #ここでIPを指定しないと動かなかったので指定

ポート57431番の起動スクリプトの作成,↓は以下の物に書き換えを示す.

cp openssh openssh_higher_port
vi openssh_higher_port
name="sshd"name="sshd_higher_port"
command="/usr/sbin/${name}"command="/usr/sbin/sshd"
PidFile                        /var/run/sshd.pid
↓
PidFile                        /var/run/sshd_higher_port.pid


OS起動時にデーモンが立ち上がるようにする

openssh_enable="YES"
#openssh port 57431
sshd_higher_port_enable="YES"
sshd_higher_port_flags="-p 57431 -f /usr/local/etc/ssh/sshd_config_higher_port"
sshd_higher_port_program="/usr/sbin/sshd"

んで,再起動するのがメンドイので起動スクリプトを実行する

/usr/local/etc/rc.d/opensshd start
/usr/local/etc/rc.d/openssh_higher_port start