127 votes

Comment puis-je SSH dans "Bash sur Ubuntu sur Windows 10" ?

J'ai Windows 10 Anniversary Edition avec "Bash on Ubuntu on Windows" installé et fonctionnant. J'aimerais pouvoir me connecter en SSH à cette instance Ubuntu, mais bien que j'aie installé et configuré openssh-server (et qu'il écoute sur le port 2200), lorsque j'essaie de me connecter en SSH à "localhost:2200", il me dit "Server unexpectedly closed network connection".

Quelqu'un a-t-il réussi à le faire ?

enter image description here

145voto

Master Azazel Points 1680

J'ai réussi à le faire fonctionner ; voici comment.

Désinstaller ssh-server, le réinstaller et s'assurer qu'il est démarré avec

sudo service ssh --full-restart

Vérifiez que vous avez désactivé l'accès root et ajouté un autre utilisateur dans le fichier de configuration.

J'ai pu me connecter au sous-système sur 127.0.0.1:22 comme prévu.  J'espère que cela vous aidera.

Here's a screenshot.

  1. sudo apt-get purge openssh-server

  2. sudo apt-get install openssh-server

  3. sudo nano /etc/ssh/sshd_config et interdire la connexion de l'utilisateur root en définissant PermitRootLogin no

  4. Puis ajoutez une ligne en dessous qui dit :

    AllowUsers yourusername

    et s'assurer PasswordAuthentication est réglé sur yes si vous voulez vous connecter en utilisant un mot de passe.

  5. Désactiver la séparation des privilèges en ajoutant/modifiant : UsePrivilegeSeparation no

  6. sudo service ssh --full-restart

  7. Connectez-vous à votre sous-système Linux depuis Windows en utilisant un client ssh comme PuTTY.

39voto

NYCeyes Points 561

Les réponses ci-dessus étaient proches, mais j'avais toujours une Connection closed by 127.0.0.1 question.

Donc, recommencer à zéro et fournir le --purge lors de la suppression de l'option sshd (comme je le démontre ci-dessous), a résolu ma variante de ce problème :

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.

J'espère que cela vous aidera. \()/

27voto

Richard Szabo Points 31

Puisque l'implémentation de Windows ne fournit pas de chroot, vous devez modifier le fichier /etc/ssh/sshd_config.

UsePrivilegeSeparation no

Vous devrez également créer un utilisateur en utilisant la commande useradd ou autre.

5voto

scotty86 Points 199

J'ai fait tout ce que Maître Azazel a suggéré et j'ai eu le problème. Lorsque je me suis connecté au port 22 On m'a demandé un mot de passe, mais celui que j'ai défini dans le sous-système Linux n'a pas fonctionné.

Solution n°1 :
changer le port SSH dans /etc/ssh/sshd_config et redémarrer le serveur SSH dans le sous-système

Solution n°2 :
désactivez/arrêtez les "SSH Server Broker Services" dans le panneau de configuration des services de Windows et redémarrez le serveur SSH dans le sous-système.

2voto

Sami Kuhmonen Points 2010

La raison pour laquelle vous ne pouvez pas y accéder par ssh est indiquée dans le journal du serveur :

chroot("/var/run/sshd") : Fonction non implémentée [preauth]

Le sous-système Linux ne semble pas avoir de chroot implémenté et le serveur ssh en a besoin, donc la connexion n'est pas autorisée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X