A veces, por razones de seguridad, es necesario tener un puerto separado para ssh y sftp en CentOS/RHEL. Aquí hay un breve tutorial sobre cómo configurar SSH en el puerto 2222 y SFTP para que funcione en el puerto 22.
1. Desde openssh-5.3p1-117.el6.x86_64 para separar el puerto ssh y sftp en los sistemas CentOS/RHEL, realice cambios en /etc/ssh/sshd_config y agregue las siguientes modificaciones.
# vi /etc/ssh/sshd_config Port 22 Port 2222
2. Comente el subsistema predeterminado y agregue el siguiente subsistema.
# vi /etc/ssh/sshd_config Subsystem sftp internal-sftp
Agregue las siguientes líneas al final del archivo /etc/ssh/sshd_config
# vi /etc/ssh/sshd_config Match LocalPort 22 AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp
3. Después de realizar las modificaciones, simplemente guarde y reinicie el servicio sshd.
# service sshd restart
Esto permitirá el puerto 22 solo para conexiones sftp. El puerto 2222 se puede usar para ssh al servidor.
Verificar
Verifiquemos nuestra configuración. Primero, intente ssh al servidor con el puerto predeterminado (22). Debería fallar como se muestra en el siguiente ejemplo:
# ssh [email protected] [email protected]'s password: This service allows sftp connections only. Connection to 192.168.10.12 closed.
Ahora intente ssh proporcionando también el puerto 2222. Debería tener éxito esta vez.
# ssh -p 2222 [email protected] [email protected]'s password: Last login: Mon Apr 17 15:23:58 2018 from ......
Como última verificación, intente sftp al sistema con el puerto predeterminado, es decir, 22:
# sftp [email protected] Connecting to 192.168.10.12... [email protected]'s password: sftp>