Tengo un enrutador OpenWrt, quiero deshabilitar la autenticación de contraseña en SSH, para que solo se pueda autenticar con claves. Esto se logra fácilmente siguiendola guíaSin embargo, en la documentación solo quiero deshabilitar la autenticación de contraseña en la interfaz WAN, ¿es esto posible?
Respuesta1
Esta respuesta se aplica a OpenSSH. OpenWRT incluye Dropbear de forma predeterminada, por lo que deberá reemplazarlo, segúneste enlace(básicamente, instalar openssh-server
y deshabilitar dropbear
).
Con OpenSSH, lo que desea es posible utilizando dos mecanismos posibles:
- Configuraciones separadas
sshd
para sus interfaces LAN y WAN. Esto solo funcionará bien si tiene una IP WAN estática (no es posiblesshd
escuchar una interfaz específica, solo una IP específica). - Sólo permita la autenticación de contraseña para clientes en su LAN.
Opción 1:
En el archivo de configuración de LAN (por ejemplo /etc/ssh/sshd_config
, el archivo predeterminado) tendría algo como:
PasswordAuthentication yes
Listen 192.168.1.1:22
En el archivo de configuración WAN (por ejemplo /etc/ssh/sshd_config_wan
,:
PasswordAuthentication no
Listen 10.1.1.1:22
En lo anterior, 192.168.1.1 es la IP de su interfaz LAN, 10.1.1.1 su dirección IP WAN y, en ambos casos, 22 el puerto para escuchar. Puede especificar el archivo de configuración para cargar usando la -f
opción sshd
. Deberá copiar el script de inicio predeterminado a uno nuevo y modificarlo para que llame sshd
con -f /etc/ssh/sshd_config_wan
.
Opcion 2:
En /etc/ssh/sshd_config
, pon esto en elfindel archivo:
PasswordAuthentication no
Match address 192.168.1.0/24
PasswordAuthentication yes
Aquí, está deshabilitando la autenticación de contraseña, excepto para las direcciones en su LAN (aquí se supone que es 192.168.1.0/24).
Respuesta2
Puede ejecutar dos instancias del servidor SSH, con diferentes configuraciones, cada una escuchando en una interfaz diferente.