![Wie kann ich per SSH auf „Bash unter Ubuntu unter Windows 10“ zugreifen?](https://rvso.com/image/1502912/Wie%20kann%20ich%20per%20SSH%20auf%20%E2%80%9EBash%20unter%20Ubuntu%20unter%20Windows%2010%E2%80%9C%20zugreifen%3F.png)
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?
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.
sudo apt-get purge openssh-server
sudo apt-get install openssh-server
sudo nano /etc/ssh/sshd_config
und untersagen Sie den Root-Login durch die EinstellungPermitRootLogin no
Fügen Sie dann darunter eine Zeile mit folgendem Inhalt hinzu:
AllowUsers yourusername
und stellen Sie sicher,
PasswordAuthentication
dass die Option auf eingestellt ist,yes
wenn Sie sich mit einem Kennwort anmelden möchten.Deaktivieren Sie die Berechtigungstrennung durch Hinzufügen/Ändern von:
UsePrivilegeSeparation no
sudo service ssh --full-restart
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.1
Problem.
Indem ich also von vorne begann und die --purge
Option beim Entfernen des sshd
Pakets 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.