GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Ssh se restablece al puerto predeterminado al reiniciar?

Cambié mi puerto SSH predeterminado en mi servidor doméstico (en el /etc/ssh/sshd_config archivo) al puerto 54747, luego reinicie el ssh y sshd servicios (nunca estoy seguro de cuál, así que hice ambos solo para estar seguro). Para probar mi configuración, me desconecté y luego volví a iniciar sesión sin ningún problema.

Un par de días después, instalé actualizaciones de apt y luego reinicié mi servidor. Cuando intenté volver a ingresar SSH (en el puerto 54747), recibí un error de conexión rechazada.

Por alguna razón, intenté SSH en el puerto predeterminado, ¡y funcionó! Volví a comprobar el sshd_config, pero todavía tenía el puerto personalizado. Así que reinicié el ssh y sshd servicios, y volvió al comportamiento "regular" (ssh en el puerto 54747). Intenté reiniciar de nuevo y la conexión volvió a rechazarse...

Alguien sabe que hice mal?

Detalles adicionales:

  • Ubuntu 16.04.2 LTS
  • El servidor también se usa como HTPC, con una sesión abierta (el mismo usuario que SSH) en mi TV
  • Usé SSH con la clave RSA de mi computadora portátil y deshabilité la autenticación de contraseña
  • Solía ​​reiniciar con sudo reboot -h now , pero después de buscar, descubrí que algunas personas lo desaconsejaban, así que probé sudo reboot , pero sin diferencias

EDITAR
Secuencia de eventos:

  1. Cambie el puerto SSH de 22 a 54747 en /etc/ssh/sshd_config
  2. Reiniciar los servicios ssh y sshd
  3. Finalizar la sesión SSH actual
  4. SSH volvió a ingresar con éxito en el puerto 54747
  5. Reiniciar
  6. Error de conexión SSH en el puerto 54747, pero exitosa en el puerto 22
  7. Reiniciar los servicios ssh y sshd
  8. SSH volvió a ingresar correctamente en el puerto 54747, error de conexión en el puerto 22
  9. Reiniciar y volver a 6

EDICIÓN 1: netstat salida

[email protected]:~$ sudo netstat -lntp | grep :54747
[email protected]:~$ sudo netstat -lntp | grep :22
tcp6       0      0 :::22                   :::*                    LISTEN      1/init  

EDICIÓN 2: service sshd status

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

EDICIÓN 3: lsof -i | grep ssh

systemd      1     root   46u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
systemd      1     root   49u  IPv6  14641      0t0  TCP *:ssh (LISTEN)
sshd      4088     root    3u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4088     root    4u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4202      rgo    3u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)
sshd      4202      rgo    4u  IPv6  42724      0t0  TCP ATLAS:ssh->192.168.1.27:49837 (ESTABLISHED)

Como referencia, ATLAS es el nombre de host del servidor remoto, 192.168.1.27 es la IP de LAN de mi computadora portátil y el comando se ejecutó entre los pasos 6 y 7

ufw status

Status: inactive

EDICIÓN 4: ps -ef |grep sshd

root      4088     1  0 22:40 ?        00:00:00 sshd: rgo [priv]
rgo       4202  4088  0 22:40 ?        00:00:00 sshd: [email protected]/1 sshd

Respuesta aceptada:

ssh puede ser "activado por socket" por systemd según la configuración, lo que significa que inicialmente es systemd el que configura el puerto de escucha, y sshd solo se inicia cuando un cliente se conecta por primera vez. Esto es para acelerar el tiempo de inicio:los demonios de servicio solo se inician bajo demanda.

Relacionado:¿Cómo grabar la pantalla en Ubuntu?

Sin embargo, esto significa que también debe configurar systemd en el puerto correspondiente. Encontrará la configuración del sistema en /lib/systemd/system/ssh.socket que enumera ListenStream=22 . Para anular esto, cree un archivo /etc/systemd/system/ssh.socket.d/port.conf (creando el directorio ssh.socket.d si es necesario) que contiene:

[Socket]
ListenStream=
ListenStream=54747

Cambie el número al puerto deseado. La primera entrada en blanco borra el valor predeterminado anterior y la entrada posterior agrega el nuevo. Esto anula el envío predeterminado en /lib/systemd/system/ssh.socket y debe hacerse además de cambiando /etc/ssh/sshd_config .

Luego ejecute sudo systemctl daemon-reload para informar a systemd sobre sus cambios, y sudo systemctl reload ssh si su demonio ssh se estaba ejecutando anteriormente.


Ubuntu
  1. Cómo cambiar el puerto SSH en Linux

  2. Cómo configurar túneles SSH

  3. ¿Conectar un túnel Ssh al reiniciar?

  4. Cambiar puerto SSH en CWP

  5. Cambiar el número de puerto del servidor SSH predeterminado

Cómo habilitar SSH en CentOS

Cómo instalar el servidor SSH en Ubuntu 20.04

Cómo cambiar el puerto SSH en Ubuntu

Cómo cambiar el puerto SSH predeterminado en Linux [de forma adecuada y segura]

¿Cómo cambiar el puerto SSH en Centos 7.x?

¿Cómo cambiar el puerto SSH en Ubuntu?