Tenho o Windows 10 Anniversary Edition com "Bash on Ubuntu on Windows" instalado e funcionando. Eu gostaria de poder fazer SSH nesta instância do Ubuntu, mas embora eu tenha o openssh-server instalado e configurado (e escutando na porta 2200), quando tento fazer ssh para "localhost: 2200", ele me diz "Servidor inesperadamente conexão de rede fechada".
Alguém conseguiu fazer isso com sucesso?
Responder1
Eu fiz funcionar; aqui está como.
Desinstalei o ssh-server, reinstalei-o e verifiquei se ele foi iniciado com
sudo service ssh --full-restart
Certifique-se de desligar o acesso root e adicionar outro usuário no arquivo de configuração.
Consegui me conectar ao subsistema em 127.0.0.1:22 conforme esperado. Eu espero que isso te ajude.
sudo apt-get purge openssh-server
sudo apt-get install openssh-server
sudo nano /etc/ssh/sshd_config
e proibir o login root configurandoPermitRootLogin no
Em seguida, adicione uma linha abaixo dela que diz:
AllowUsers yourusername
e certifique-se
PasswordAuthentication
de que esteja definidoyes
se deseja fazer login usando uma senha.Desative a separação de privilégios adicionando/modificando:
UsePrivilegeSeparation no
sudo service ssh --full-restart
Conecte-se ao seu subsistema Linux a partir do Windows usando um cliente ssh como o PuTTY.
Responder2
As respostas acima chegaram perto, mas ainda tive um Connection closed by 127.0.0.1
problema.
Então, recomeçando do zero e fornecendo a --purge
opção de remover o sshd
pacote (como demonstro abaixo), resolvi minha variação deste problema:
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.
Responder3
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 algo assim.
Responder4
A razão pela qual você não pode fazer ssh é mostrada no log do servidor:
chroot("/var/run/sshd"): Função não implementada [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.