Ich habe einen OpenWrt-Router und möchte die Passwortauthentifizierung bei SSH deaktivieren, sodass man sich nur mit Schlüsseln authentifizieren kann. Dies lässt sich ganz einfach erreichen, indem mander Führerin der Dokumentation möchte ich jedoch nur die Kennwortauthentifizierung auf der WAN-Schnittstelle deaktivieren, ist das möglich?
Antwort1
Diese Antwort gilt für OpenSSH. OpenWRT enthält Dropbear standardmäßig, daher müssen Sie es ersetzen, gemäßdieser Link(im Grunde installieren openssh-server
und deaktivieren dropbear
).
Mit OpenSSH ist das, was Sie möchten, mithilfe von zwei möglichen Mechanismen möglich:
- Separate
sshd
Konfigurationen für Ihre LAN- und WAN-Schnittstellen. Dies funktioniert nur gut, wenn Sie eine statische WAN-IP haben (es ist nicht möglich,sshd
eine bestimmte Schnittstelle anzurufen, nur eine bestimmte IP). - Erlauben Sie die Kennwortauthentifizierung nur für Clients in Ihrem LAN.
Option 1:
In der LAN-Konfigurationsdatei (z. B. /etc/ssh/sshd_config
der Standarddatei) stünde etwa Folgendes:
PasswordAuthentication yes
Listen 192.168.1.1:22
In der WAN-Konfigurationsdatei (z. B /etc/ssh/sshd_config_wan
.:
PasswordAuthentication no
Listen 10.1.1.1:22
Oben ist 192.168.1.1 Ihre LAN-Schnittstellen-IP, 10.1.1.1 Ihre WAN-IP-Adresse und in beiden Fällen 22 der Port, auf dem überwacht wird. Sie können die zu ladende Konfigurationsdatei angeben, indem Sie die -f
Option verwenden sshd
. Sie müssen das Standard-Init-Skript in ein neues kopieren und es so ändern, dass es sshd
mit aufgerufen wird -f /etc/ssh/sshd_config_wan
.
Option 2:
In /etc/ssh/sshd_config
, setzen Sie dies an derEndeder Datei:
PasswordAuthentication no
Match address 192.168.1.0/24
PasswordAuthentication yes
Hier deaktivieren Sie die Kennwortauthentifizierung, mit Ausnahme für Adressen in Ihrem LAN (hier angenommen 192.168.1.0/24).
Antwort2
Sie können zwei Instanzen des SSH-Servers mit unterschiedlichen Konfigurationen ausführen, die jeweils auf einer anderen Schnittstelle lauschen.