Como posso usar o SSH em “Bash on Ubuntu on Windows 10”?

86

Eu tenho o Windows 10 Anniversary Edition com o "Bash no Ubuntu no Windows" instalado e funcionando. Eu gostaria de ser capaz de SSH para esta instância do Ubuntu, mas embora eu tenha openssh-servidor instalado e configurado (e escuta na porta 2200), quando eu tento ssh para "localhost: 2200", ele me diz "Servidor inesperadamente conexão de rede fechada ".

Alguém conseguiu fazer isso com sucesso?

    
por Mick 09.08.2016 / 16:52

5 respostas

100

Eu tenho que dar certo; aqui está como.

Desinstalou o ssh-server, reinstalou-o e certificou-se de que foi iniciado com

sudo service ssh --full-restart

Certifique-se de que desativou o acesso root e adicionou outro usuário no arquivo de configuração.

Consegui conectar-me ao subsistema em 127.0.0.1:22 como esperado. Espero que isso ajude você.

  1. sudo apt-get purge openssh-server
  2. sudo apt-get install openssh-server
  3. sudo nano /etc/ssh/sshd_config e não permitir login raiz definindo PermitRootLogin no
  4. Em seguida, adicione uma linha abaixo dele que diz:

    AllowUsers yourusername

    e certifique-se de que PasswordAuthentication esteja definido como yes se você quiser fazer o login usando uma senha.

  5. Desative a separação de privilégios adicionando / modificando: UsePrivilegeSeparation no

  6. sudo service ssh --full-restart

  7. Conecte-se ao seu subsistema Linux do Windows usando um cliente ssh como o PuTTY.

por 16.08.2016 / 16:02
24

Como a implementação do Windows não fornece chroot, você precisa modificar o / etc / ssh / sshd_config

UsePrivilegeSeparation no

Além disso, você precisará criar um usuário usando o comando useradd ou mais.

    
por 09.08.2016 / 22:45
17

As respostas do comitê acima foram ótimas. Obrigado por eles. E enquanto eles chegaram muito perto, eu ainda tinha os problemas do Connection closed by 127.0.0.1 .

Eu encontrei e adicionei etapas adicionais de este post o que me deixou sobre a corcunda. Em particular, recomeçando e adicionando isso como a etapa inicial / primeira (observe o qualificador - eliminação ), finalmente resolvi minha variação desse problema:

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

Obrigado novamente, espero que essa adição ajude os outros. =:)

    
por 16.05.2017 / 04:58
5

Eu fiz tudo como o Mestre Azazel sugeriu e teve o problema. Quando conectei à porta 22 , pedi uma senha, mas a senha definida no subsistema Linux não funcionou.

Solução # 1:
altere a porta SSH em /etc/ssh/sshd_config e reinicie o servidor SSH no subsistema

Solução # 2:
desabilite / interrompa o "SSH Server Broker Services" no painel de controle de serviços do Windows e reinicie o servidor SSH no subsistema.

    
por 17.11.2016 / 10:57
2

O motivo pelo qual você não pode ssh para ele é mostrado no log do servidor:

chroot("/var/run/sshd"): Function not implemented [preauth]

O subsistema Linux não parece ter o chroot implementado e o servidor ssh precisa dele para que a conexão não seja permitida.

    
por 09.08.2016 / 18:46