web-dev-qa-db-fra.com

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

J'ai Windows 10 Anniversary Edition avec "Bash sur Ubuntu sous Windows" installé et fonctionnel. J'aimerais pouvoir utiliser SSH dans cette instance Ubuntu, mais bien que j'ai le serveur openssh installé et configuré (et que j'écoute sur le port 2200), lorsque j'essaie d'utiliser ssh sur "localhost: 2200", le message "Serveur inattendu" s'affiche. connexion réseau fermée ".

Est-ce que quelqu'un a réussi à accomplir cela?

 enter image description here

97
Mick

Je l'ai eu pour travailler; Voici comment.

Ssh-server désinstallé, réinstallé et assurez-vous qu'il a démarré avec

Sudo service ssh --full-restart

Assurez-vous d'avoir 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 le 127.0.0.1:22 comme prévu. J'espère que cela t'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 root en définissant PermitRootLogin no
  4. Ajoutez ensuite une ligne sous celle-ci qui dit:

    AllowUsers yourusername

    et assurez-vous que PasswordAuthentication est défini sur yes si vous souhaitez vous connecter à l'aide d'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 à partir de Windows à l'aide d'un client ssh tel que PuTTY.

114
Master Azazel

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

UsePrivilegeSeparation no

Aussi, vous devrez créer un utilisateur en utilisant la commande useradd ou autre.

27
d1val

Les réponses du comité ci-dessus étaient excellentes. Merci pour eux. Et pendant qu'ils sont venus très proches, j'avais toujours Connexion fermée par 127.0.0.1 problèmes.

J'ai trouvé et ajouté des étapes supplémentaires à partir de ce post qui m'a permis de surmonter la bosse. En particulier, en recommençant et en ajoutant ceci comme première étape/première étape (notez le qualificatif --purge ), j'ai finalement résolu ma variante de ce problème:

Sudo apt-get remove --purge openssh-server
Sudo apt-get install openssh-server
Sudo vi /etc/ssh/sshd_config # Change Port from 22 to 2222 (Just in case MS-Windows is using port 22; which, by the way, SSH on MS-Windows can be disabled if you want to use port 22).
Sudo service ssh --full-restart

Merci encore, j'espère que cet ajout aidera les autres. = :)

21
NYCeyes

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

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

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

4
scotty86

La raison pour laquelle vous ne pouvez pas utiliser SSH est indiquée dans la journalisation à partir du serveur:

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

Le sous-système Linux ne semble pas avoir implémenté chroot et le serveur ssh en a besoin pour que la connexion ne soit pas autorisée.

2
Sami Kuhmonen