Il problema
Su CentOS/RHEL, OpenSSH SSH Daemon (sshd) utilizza la porta 22 per le richieste di connessione in entrata da client OpenSSH SSH (ssh) e Secure File Transfer (sftp) remoti. In alcuni casi, tuttavia, gli amministratori di sistema preferiscono utilizzare porte separate per gestire l'attività ssh e sftp. In uno di questi casi, l'amministratore di sistema sta riscontrando un errore inferiore durante l'avvio del servizio sshd
sshd[13798]: error: Bind to port 2222 on 0.0.0.0 failed: Permission denied. sshd[13798]: error: Bind to port 2222 on :: failed: Permission denied. sshd[13798]: Server listening on 0.0.0.0 port 22. sshd[13798]: Server listening on :: port 22
La soluzione
sshd è stato recentemente riconfigurato per utilizzare porte di rete aggiuntive e/o non predefinite. Per impostazione predefinita, sshd è configurato per utilizzare la porta di rete 22. Ad esempio:
# grep ssh /etc/services ssh 22/tcp # The Secure Shell (SSH) Protocol ssh 22/udp # The Secure Shell (SSH) Protocol ssh 22/sctp # SSH
SELinux, anch'esso abilitato per impostazione predefinita, si aspetta e impone a sshd di utilizzare esclusivamente la porta di rete 22. Se si riconfigura sshd per utilizzare una porta aggiuntiva e/o non predefinita, SELinux impedisce l'uso della porta provocando l'errore di Permesso negato osservato.
1. Identifica le attuali porte di ascolto sshd consentite da SELinux.
# semanage port -l | grep ssh ssh_port_t tcp 22
2. Configura SELinux per consentire a sshd di utilizzare la porta 2222 aggiuntiva.
# semanage port -a -t ssh_port_t -p tcp 2222
3. Verificare le nuove porte di ascolto sshd consentite da SELinux.
# semanage port -l | grep ssh ssh_port_t tcp 2222,22
4. Riavvia il servizio sshd per rendere effettive le modifiche.
Per CentOS/RHEL 7/8:
# systemctl restart sshd # systemctl status sshd
Per CentOS/RHEL 5/6:
# service sshd restart # service sshd status