Esta resposta aplica-se ao OpenSSH. O OpenWRT inclui o Dropbear por padrão, então você precisaria substituí-lo, conforme este link (basicamente, instale openssh-server e desative dropbear ).
Com o OpenSSH, o que você gostaria é possível usando dois mecanismos possíveis:
- Separe as configurações de
sshdpara suas interfaces de LAN e WAN. Isso só funcionará bem se você tiver um IP de WAN estático (não é possível dizer asshdpara ouvir uma interface específica, apenas um IP específico). - Permitir apenas a autenticação de senha para clientes na sua LAN.
Opção 1:
No arquivo de configuração da LAN (por exemplo, /etc/ssh/sshd_config , o arquivo padrão) você teria algo como:
PasswordAuthentication yes
Listen 192.168.1.1:22
No arquivo de configuração da WAN (por exemplo, /etc/ssh/sshd_config_wan :
PasswordAuthentication no
Listen 10.1.1.1:22
Acima, 192.168.1.1 é o IP da sua interface LAN, 10.1.1.1 seu endereço IP da WAN e, em ambos os casos, 22 a porta para escutar. Você pode especificar o arquivo de configuração para carregar usando a opção -f para sshd . Você precisará copiar o script init padrão para um novo e alterá-lo para chamar sshd com -f /etc/ssh/sshd_config_wan .
Opção 2:
Em /etc/ssh/sshd_config , coloque isso no fim do arquivo:
PasswordAuthentication no
Match address 192.168.1.0/24
PasswordAuthentication yes
Aqui, você está desabilitando a autenticação de senha, exceto os endereços na sua LAN (assumido aqui como 192.168.1.0/24).