¿Cómo calculo en qué puerto iniciar sesión con SSH?


15

Tengo una configuración de servidor Ubuntu 10.04 remotamente que configuré hace un tiempo. Mientras grabé el nombre de usuario y la contraseña, parece que fui inteligente y cambié el puerto ssh habitual de 22 a ... algo más.

¿Cómo puedo saber cuál podría ser ese puerto?

Tengo acceso al servidor a través de la puerta de atrás de la empresa de alojamiento, por lo que puedo ejecutar cualquier comando de Unix que sea necesario, pero no puedo iniciar sesión con una masilla normal en mi máquina.


Esto es probablemente una tontería, y ya tiene buenas respuestas, pero si se ha conectado en el pasado, puede verificar el historial de su terminal y / o ~/.ssh/config.
Sparhawk

Respuestas:


24

Primero verifique en el archivo de configuración qué puerto está configurado:

$ sudo grep Port /etc/ssh/sshd_config
Port 22

Luego, reinicie sshpara asegurarse de que carga la configuración que acaba de ver o descubra en qué puerto se sshestá ejecutando:

$ sudo netstat -tpln | egrep '(Proto|ssh)'
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      12586/sshd

Esa es una sshejecución normal en el puerto 22.


1
Solo una nota: no creo que necesites sudo
piertoni

En el primer comando que necesita sudoporque generalmente el sshdarchivo de configuración no es legible en todo el mundo. En el segundo, debe sudopoder resolver el problema Program name; de lo contrario, solo puede ver el nombre de los procesos que se ejecutan bajo su propio usuario.
Marcos Dione

Estoy de acuerdo con @piertoni, no necesitas ejecutar este comando con "SUDO".
Amintabar el

8

Si tiene acceso al servidor a través de otros medios, simplemente ejecute:

$ sudo grep Port /etc/ssh/sshd_config 
Port NNN

Eso devolverá una línea como la que se muestra arriba, donde NNNserá el puerto que elija.


3

La forma más sencilla es mirar los archivos de configuración del servidor SSH:

➜  ~  sudo grep Port /etc/ssh/sshd_config 
   Port 22

También se comprueban los puertos de escucha por proceso con lsof:

sudo lsof -Pi | grep ssh

o cualquier otro comando de listado de puertos como netstat -lntu.


3

Si no tiene acceso a la consola del servidor, tendrá que probar todos los puertos desde un host distante. Estas utilidades son similares nmap, sin embargo, la capa de red debe transmitir el tráfico a la combinación específica de host (dirección IP) Y puerto.


3

Si no tiene acceso de inicio de sesión al servidor, puede encontrar el puerto SSH utilizando nmapla función de "escaneo de versión":

nmap -sV -p- <insert target's IP here>

La -sVopción significa "escaneo de versión" y -p-significa "escanear todos los puertos". Si tiene una buena conexión y está seguro de que no alterará el firewall o IDS de alguien, puede agregar -T5para "escanear lo más rápido posible". Los resultados se verán así:

PORT     STATE SERVICE VERSION
1422/tcp open  ssh      (protocol 2.0)

1
$ sudo netstat -lntp
[sudo] password for XXX:
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       2799/sshd
tcp6  0      0      :::22            :::*             LISTEN       2799/sshd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.