Como parte de mi esfuerzo por reducir el ruido en los registros y reducir un poco la capacidad de detección (y además de fail2ban, permitiendo solo la autenticación de clave pública, etc.), rutinariamente cambio los puertos sshd en los servidores que configuré en un puerto diferente, digamos 5492. Actualmente Agrego -p 5492 a mi comando ssh o agrego el puerto para cada servidor específico en mi ssh_config
.
¿Hay alguna forma de configurar ssh para intentar conectarse al puerto 22 y al puerto 5492 si el puerto 22 no funciona?
ssh
command-line
Riley
fuente
fuente
ssh
presencia para el exterior.Respuestas:
Podría envolver un script de shell,
ssh
pero enssh
sí mismo no lo hará.Una forma de usar una función bash es esta (poner en
~/.bashrc
):Por cierto, se recomienda usar
root
puertos reservados para servicios del sistema, comossh
para evitar que los usuarios tengan un proceso que escuche, por ejemplo, el puerto 5492. De lo contrario, pueden jugar man en el medio y posiblemente capturar datos de inicio de sesión. Entonces, use un puerto <1024.fuente
ssh
devuelve distinto de cero. Un ejemplo trivial seríassh user@server false
.command
ahora. Solo quería evitar la recurrencia, como has acertado.ssh
- si hay un error de ssh (a diferencia de la falla del comando remoto), saldrá con un estado de 255. Por lo tanto,command ssh -p 22 "$@"; if [ "$?" -eq 255 ]; then command ssh -p 5492 "$@"; fi
debería funcionar.ssh
en sí mismo puede hacerlo a través deMatch
documentado,ssh_config(5)
aunque la documentación es algo escasa en ejemplos. Este formulario puede ser adecuado si se quiere introducir la complejidad en la configuración de SSH, aunque está restringido por las limitaciones de lassh_config(5)
sintaxis y puede requerir un poco de manipulación para el resultado deseado. En particular, el puerto personalizado no se puede configurar o se puede configurar incorrectamente desde elMatch
intento anterior . Es por eso que, a continuación, se establece dos veces cuando se prueba, o una vez por defecto, y no se establece al establecer los valores predeterminados canónicos.is-ssh-up
simplemente verifica si algo responde en el puerto dado y podría verse comofuente
Puede usar la función comodín de
~.ssh/config
, colocando esta entrada en su lista:Pero esto no se reducirá a 22 por sí solo.
Si lo coloca al final, aún puede anularlo para aquellos hosts donde necesite 22 poniendo un valor diferente por encima. (Y siempre puede anularlo en la línea de comando).
fuente