ssh エラー「error: Bind to port xxx on 0.0.0.0 failed: Permission denied.」が発生した場合の対処法

  • 作成日 2021.07.14
  • ssh
ssh エラー「error: Bind to port xxx on 0.0.0.0 failed: Permission denied.」が発生した場合の対処法

sshのポート番号変更時に、エラー「error: Bind to port xxx on 0.0.0.0 failed: Permission denied.」が発生した場合の対処法を記述してます。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)

エラー全文

「/etc/ssh/sshd_config」の「port」を変更し「systemctl restart sshd」した際に発生

エラーは「journalctl -xe」で確認

journalctl -xe

<出力結果>
-- Unit sshd.service has begun starting up.
 sshd[6699]: error: Bind to port xxxxx on 0.0.0.0 failed: Permission denied.
 sshd[6699]: fatal: Cannot bind any address.
systemd[1]: sshd.service: Main process exited, code=exited, status=255/n/a
systemd[1]: sshd.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- The unit sshd.service has entered the 'failed' state with result 'exit-code'.
systemd[1]: Failed to start OpenSSH server daemon.

原因

selinuxが有効になっていたため、selinux側で制御されていたため

対処法

以下の手順でSELinuxを無効にする

sudo setenforce 0

永続的に無効にする場合は、

sudo nano /etc/selinux/config

<編集>
#SELINUX=enforcing
SELINUX=disabled

もしくは、selinux側で設定したポートを許可する

sudo semanage port -a -t ssh_port_t -p tcp ポート番号

「semanage」コマンドが使用できない場合は、インストールしておく

sudo dnf -y install policycoreutils-python-utils