In Windows 10 habe ich zwei Arten von Linux-Distributionen installiert, Ubuntu 18.04 und Ubuntu 20.04, die WSL verwenden. Ich möchte 20.04 für SSH-Port 22 und 18.04 für SSH-Port 2222 konfigurieren. Werden diese Änderungen Auswirkungen auf eine der beiden Distributionen haben?
Sind diese Distributionen bei der Installation isoliert oder beeinflussen sie sich gegenseitig?
Antwort1
Sie können den SSH-Port auf einem (oder beiden) Ihrer Systeme beliebig oft ändern. Dies hat keine Auswirkungen; Ihre Systeme laufen mit den geänderten Porteinstellungen normal.
SSH ist fürdeinInteraktion mit dem System. Kein interner Prozess verwendet es. Eine Standardinstallation von Ubuntu Desktop hat nicht einmal einen SSH-Server.
Antwort2
Nun, es gibt die „einfache Antwort“, die Ihre Frage beantwortet, Ihnen aber wahrscheinlich nicht wirklich weiterhilft. Und dann gibt es noch „was Sie wirklich tun müssen, um einen SSH-Server auf WSL auszuführen“.
Einfache Antwort, wie andere bereits gesagt haben: Jede Instanz kann ihren eigenen SSH-Server relativ isoliert betreiben.
Längere Antwort ... es istkompliziert. Einen SSH-Server auf WSL laufen zu lassen, ist eine Sache. Sich tatsächlich remote darauf verbinden zu können, ist eine ganz andere Sache. Sie müssen sich um Portweiterleitung, Firewalls und den Dienststart kümmern (etwas, das WSL ohne systemd nicht gut kann).
Zunächst wäre es hilfreich, Ihre Anwendungsfälle für SSH in WSL zu kennen.
Wenn Sie nur remote auf Ihre Instanzen zugreifen möchten, ist es meiner Meinung nach am einfachsten, einfachInstallieren Sie den Windows 10 OpenSSH-Serverauf dem Host selbst. Wenn dies eingerichtet ist, müssen Sie als einzige Konfiguration nur noch Port 22 der Windows-Firewall öffnen. Und die Kurzanleitung dazu finden Sie in den oben verlinkten Microsoft-Anweisungen zur Installation.
Wenn ein OpenSSH-Server unter Windows installiert ist, können Sie Folgendes verwenden:
ssh -t <user@windows_host_or_ip> wsl -d <wsl_instance_name>
... um zu Ihrer WSL-Instanz zu gelangen. Dies -d <wsl_instance_name>
ist für Ihre Standard-WSL-Instanz nicht erforderlich.
Aber vielleicht brauchen Sie aus einem anderen Grund SSH-Zugriff auf die WSL-Instanzen. Ich verwende beispielsweise Ansible, um eine Verbindung zu einigen meiner WSL-Instanzen auf mehreren Rechnern herzustellen und sie zu konfigurieren. Dazu muss für jede Instanz ein „echter“ SSH-Server ausgeführt werden.
In diesem Fall müssen Sie Lösungen für Folgendes finden:
- Portweiterleitung vom Windows-Host zu WSL2-Instanzen (WSL1 erfordert keine Portweiterleitung, da sein Netzwerk „überbrückt“ mit der Windows-Netzwerkschnittstelle läuft.)
- Starten des
sshd
Dienstes in jedem Fall (es erfolgt nicht automatisch)
Meiner Meinung nach ist die einfachste Lösung hier immer noch, den Windows OpenSSH-Server auf Port 22 zu installieren und dann jede WSL-Instanz ebenfalls mit einem eigenen OpenSSH-Server zu konfigurieren, aber (natürlich) auf unterschiedlichen Ports. Sie können dann den Windows-Host als „Jumphost“ verwenden, um auf die darin enthaltenen Instanzen zuzugreifen. Detaillierte Anweisungen hierzu finden Sie indiese Antwortauf Super User.
Dies löst auch den Befehl "Starten sshd
in WSL wsl"problem, because you can use a syntax similar to the earlier one I mentioned (using the
durchWindows ssh), um den Dienst remote zu starten. Mit anderen Worten, solange der Windows SSH-Server auf automatischen Start eingestellt ist, können Sie damit alle SSH-Server der WSL-Instanzen starten. Die Einzelheiten finden Sie wiederum in dieser Antwort.
Lesenswert ist auchdiese Antwortauf Super User bezüglich allgemeiner Portweiterleitungsszenarien in WSL.