2016-08-09 14:52:46 +0000 2016-08-09 14:52:46 +0000
106
106

Wie kann ich SSH in "Bash auf Ubuntu auf Windows 10"?

Ich habe Windows 10 Anniversary Edition mit “Bash auf Ubuntu auf Windows” installiert und funktioniert. Ich würde gerne per SSH auf diese Ubuntu-Instanz zugreifen, aber obwohl ich openssh-server installiert und konfiguriert habe (und auf Port 2200 lausche), wenn ich versuche, per SSH auf “localhost:2200” zuzugreifen, bekomme ich die Meldung “Server hat Netzwerkverbindung unerwartet geschlossen”.

Konnte jemand dieses Problem erfolgreich lösen?

Antworten (5)

125
125
125
2016-08-16 14:02:58 +0000

Ich habe es zum Funktionieren gebracht; hier ist die Vorgehensweise.

Deinstallieren Sie den ssh-server, installieren Sie ihn neu und stellen Sie sicher, dass er mit

sudo service ssh --full-restart

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

Ich konnte mich wie erwartet mit dem Subsystem auf 127.0.0.1:22 verbinden.  Ich hoffe, dies hilft Ihnen.

  1. sudo apt-get purge openssh-server
  2. sudo apt-get install openssh-server
  3. sudo nano /etc/ssh/sshd_config und verbieten Sie den Root-Login durch Setzen von PermitRootLogin no
  4. Fügen Sie dann eine Zeile darunter ein, die lautet:

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

  6. sudo service ssh --full-restart

  7. Verbinden Sie sich mit Ihrem Linux-Subsystem von Windows aus mit einem ssh-Client wie PuTTY.

28
28
28
2017-05-16 02:58:48 +0000

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

Von vorne zu beginnen und das sshd-Paket mit der Option --purge zu entfernen (wie unten gezeigt), löste meine Variante dieses Problems:

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.

Ich hoffe, das hilft. =:)

27
27
27
2016-08-09 20:45:01 +0000

Da die Windows-Implementierung kein chroot bietet, müssen Sie die /etc/ssh/sshd_config

UsePrivilegeSeparation no

modifizieren. Außerdem müssen Sie einen Benutzer mit dem Befehl useradd oder so erstellen.

5
5
5
2016-11-17 09:57:41 +0000

Ich habe alles getan, wie Master Azazel vorgeschlagen hat, und hatte das Problem. Als ich mich mit Port 22 verband, wurde ich nach einem Passwort gefragt, aber das Passwort, das ich im Linux-Subsystem eingestellt hatte, funktionierte nicht.

Lösung #1: ändern Sie den SSH-Port in /etc/ssh/sshd_config und starten Sie den SSH-Server im Subsystem neu

Lösung #2: deaktivieren/stoppen Sie die “SSH Server Broker Services” in der Dienste-Systemsteuerung von Windows und starten Sie den SSH-Server im Subsystem neu.

2
2
2
2016-08-09 16:46:49 +0000

Der Grund, warum Sie nicht per ssh darauf zugreifen können, wird in der Protokollierung des Servers angezeigt:

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

Das Linux-Subsystem scheint chroot nicht implementiert zu haben und der ssh-Server braucht es, also wird die Verbindung nicht zugelassen.