Wie kann ich per SSH auf „Bash unter Ubuntu unter Windows 10“ zugreifen?

Wie kann ich per SSH auf „Bash unter Ubuntu unter Windows 10“ zugreifen?

Ich habe Windows 10 Anniversary Edition mit „Bash on Ubuntu on Windows“ installiert und es funktioniert. Ich möchte in der Lage sein, per SSH auf diese Ubuntu-Instanz zuzugreifen, aber obwohl ich OpenSSH-Server installiert und konfiguriert habe (und auf Port 2200 lausche), wird mir beim Versuch, per SSH auf „localhost:2200“ zuzugreifen, die Meldung „Server hat Netzwerkverbindung unerwartet geschlossen“ angezeigt.

Hat das irgendjemandem erfolgreich gelingen können?

Bildbeschreibung hier eingeben

Antwort1

Ich habe es zum Laufen gebracht. Und zwar so:

SSH-Server deinstalliert, neu installiert und sichergestellt, dass er mit

sudo service ssh --full-restart

Stellen Sie sicher, dass Sie den Root-Zugriff deaktiviert und in der Konfigurationsdatei einen anderen Benutzer hinzugefügt haben.

Ich konnte wie erwartet eine Verbindung zum Subsystem auf 127.0.0.1:22 herstellen. Ich hoffe, das hilft Ihnen weiter.

Hier ist ein Screenshot.

  1. sudo apt-get purge openssh-server
  2. sudo apt-get install openssh-server
  3. sudo nano /etc/ssh/sshd_configund untersagen Sie den Root-Login durch die EinstellungPermitRootLogin no
  4. Fügen Sie dann darunter eine Zeile mit folgendem Inhalt hinzu:

    AllowUsers yourusername

    und stellen Sie sicher, PasswordAuthenticationdass die Option auf eingestellt ist, yeswenn Sie sich mit einem Kennwort anmelden möchten.

  5. Deaktivieren Sie die Berechtigungstrennung durch Hinzufügen/Ändern von:UsePrivilegeSeparation no

  6. sudo service ssh --full-restart

  7. Stellen Sie mit einem SSH-Client wie PuTTY von Windows aus eine Verbindung zu Ihrem Linux-Subsystem her.

Antwort2

Die obigen Antworten kamen der Sache nahe, aber ich hatte immer noch ein Connection closed by 127.0.0.1Problem.

Indem ich also von vorne begann und die --purgeOption beim Entfernen des sshdPakets bereitstellte (wie ich unten zeige), wurde meine Variante dieses Problems gelöst:

user$ sudo apt-get remove --purge openssh-server # First remove sshd with --purge option.
user$ sudo apt-get install openssh-server
user$ sudo vi /etc/ssh/sshd_config # **See note below.
user$ sudo service ssh --full-restart

# ** Change Port from 22 to 2222. (Just in case MS-Windows is using port 22).
#    Alternatively, you can disable MS-Windows' native SSH service if you 
#    wish to use port 22.

Antwort3

Da die Windows-Implementierung kein Chroot bereitstellt, müssen Sie die Datei /etc/ssh/sshd_config ändern.

UsePrivilegeSeparation no

Außerdem müssen Sie mit dem Befehl „useradd“ oder einem ähnlichen Befehl einen Benutzer erstellen.

Antwort4

Der Grund, warum keine SSH-Verbindung hergestellt werden kann, wird in der Protokollierung des Servers angezeigt:

chroot("/var/run/sshd"): Funktion nicht implementiert [preauth]

Das Linux-Subsystem scheint Chroot nicht implementiert zu haben, der SSH-Server benötigt es jedoch, sodass die Verbindung nicht zugelassen wird.

verwandte Informationen