Linode で Gentoo 2008.0 を使ってみる 06

SSH の設定を行う。

# vi /etc/ssh/sshd_config

変更前

#Port 22
PermitRootLogin no
UsePAM yes

変更後

Port 32768              # ポート番号は任意の番号に変更する
PermitRootLogin yes     # 鍵交換式のログインを選択する場合は no のままにする
UsePAM no               # PAM の認証は行わないので、no にする
# SSH のログインを許可するユーザー名を記述
AllowUsers littlebuddha # 複数名の場合は半角スペースを空けて記入する

SSH がデーモンとして登録されているかを確認する

# rc-update show | grep ssh
                sshd |      default

変更した設定を読み込む

# /etc/init.d/sshd reload
 * Reloading sshd ...
No /usr/sbin/sshd found running; none killed.                             [ ok ]

トラブル

今回は /etc/init.d/sshd reload としたが、ポート番号が 22 から変更した任意の番号に適用されなかった。

# netstat -lnptu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3904/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      3904/sshd

netstat で確認をしても、22番のままだった。
/etc/init.d/sshd restart とすると、エラーステータスが戻ってきて、sshd の再起動ができなかった。
最終的には、

  • iptables の設定を一度初期化して、未設定の状態を保存
  • sshd_config の設定で root のログインを有効に戻し、ポート番号も 22 に直す
  • システムの再起動

を行ってログインをしたところ、先ほど変更した箇所が有効になった sshd が起動していた。原因がわからないまま、再度 iptabels と sshd の設定を変更して保存して、SSH のログインができることを確認した。
/etc/services で sshd のポート番号を変更しても、反映されなかった。
最悪の場合、root でも一般ユーザーでもログインができなくなる可能性があったので、怖かった。
現在は、SSH が意図通りに動作していることを確認済み。

% sudo netstat -lnptu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:32768           0.0.0.0:*               LISTEN      4131/sshd
tcp6       0      0 :::32768                :::*                    LISTEN      4131/sshd
udp        0      0 0.0.0.0:68              0.0.0.0:*                           3083/dhcpcd