Não é possível acessar o servidor SSH em execução no WSL [closed]

0

Basicamente eu habilitei um servidor SSH no Kali WSL Linux.

O problema é que quando eu faço ssh [email protected] do Windows e forneço a senha, ela funciona bem e a conexão é bem-sucedida.

Quando eu faço isso da Internet, e faço ssh root@PublicIP , ele pede a senha e depois falha.

Eu habilitei o encaminhamento de porta no meu roteador para habilitar o acesso SSH na porta 22 e também habilitei PermitRootLogin: Yes .

Ao fazer o ssh a partir da Internet, a saída do comando ssh -vvv [email protected] é a seguinte:

debug1: Trying private key: C:\Users\username/.ssh/id_dsa
debug3: GetFileAttributesExW with last error 2
debug3: no such identity: C:\Users\username/.ssh/id_dsa: No such file or directory
debug1: Trying private key: C:\Users\username/.ssh/id_ecdsa
debug3: GetFileAttributesExW with last error 2
debug3: no such identity: C:\Users\username/.ssh/id_ecdsa: No such file or     directory
debug1: Trying private key: C:\Users\username/.ssh/id_ed25519
debug3: GetFileAttributesExW with last error 2
debug3: no such identity: C:\Users\username/.ssh/id_ed25519: No such file or     directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
debug3: failed to open file:/dev/tty error:3
debug1: read_passphrase: can't open /dev/tty: No such file or directory

O servidor /var/log/auth.log output é:

Aug 19 17:17:01 kali CRON[1427]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 17:17:01 kali CRON[1427]: pam_unix(cron:session): session closed for user root
Aug 19 17:21:13 kali systemd-logind[553]: New seat seat0.
Aug 19 17:21:13 kali systemd-logind[553]: Watching system buttons on /dev/input/event5 (Power Button)
Aug 19 17:21:13 kali systemd-logind[553]: Watching system buttons on /dev/input/event0 (AT Translated Set 2 keyboard)
Aug 19 17:21:15 kali sshd[586]: Server listening on 0.0.0.0 port 22.
Aug 19 17:21:15 kali sshd[586]: Server listening on :: port 22.
Aug 19 17:21:16 kali gdm-launch-environment]: pam_unix(gdm-launch-environment:session): session opened for user Debian-gdm by (uid=0)
Aug 19 17:21:16 kali systemd-logind[553]: New session c1 of user Debian-gdm.
Aug 19 17:21:16 kali systemd: pam_unix(systemd-user:session): session opened for user Debian-gdm by (uid=0)
Aug 19 17:21:25 kali polkitd(authority=local): Registered Authentication Agent for unix-session:c1 (system bus name :1.16 [/usr/bin/gnome-shell], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
Aug 19 17:21:27 kali realmd[785]: Loaded settings from: /usr/lib/realmd/realmd-defaults.conf /usr/lib/realmd/realmd-distro.conf
Aug 19 17:21:27 kali realmd[785]: holding daemon: startup
Aug 19 17:21:27 kali realmd[785]: starting service
Aug 19 17:21:27 kali realmd[785]: connected to bus
Aug 19 17:21:27 kali realmd[785]: released daemon: startup
Aug 19 17:21:27 kali realmd[785]: claimed name on bus: org.freedesktop.realmd
Aug 19 17:21:44 kali gdm-password]: pam_unix(gdm-password:session): session opened for user root by (uid=0)
Aug 19 17:21:44 kali systemd: pam_unix(systemd-user:session): session opened for user root by (uid=0)
Aug 19 17:21:44 kali systemd-logind[553]: New session 2 of user root.
Aug 19 17:21:47 kali polkitd(authority=local): Registered Authentication Agent     for unix-session:2 (system bus name :1.55 [/usr/bin/gnome-shell], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
Aug 19 17:22:28 kali realmd[785]: quitting realmd service after timeout
Aug 19 17:22:28 kali realmd[785]: stopping service
Aug 19 17:23:03 kali sshd[1269]: Connection closed by 192.168.0.13 port 57122     [preauth]
Aug 19 17:24:35 kali sudo:     root : TTY=pts/0 ; PWD=/root ; USER=root ;     COMMAND=/usr/bin/passwd
Aug 19 17:24:35 kali sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Aug 19 17:24:37 kali passwd[1284]: pam_unix(passwd:chauthtok): password changed for root
Aug 19 17:24:37 kali passwd[1284]: gkr-pam: couldn't update the login keyring password: no old password was entered
Aug 19 17:24:37 kali sudo: pam_unix(sudo:session): session closed for user     root
Aug 19 17:25:01 kali CRON[1287]: pam_unix(cron:session): session opened for user     root by (uid=0)
Aug 19 17:25:01 kali CRON[1287]: pam_unix(cron:session): session closed for user root
Aug 19 17:26:11 kali sshd[1290]: Accepted password for root from 192.168.0.13 port 57190 ssh2
Aug 19 17:26:11 kali sshd[1290]: pam_unix(sshd:session): session opened for user root by (uid=0)
Aug 19 17:26:11 kali systemd-logind[553]: New session 5 of user root.
Aug 19 17:28:04 kali passwd[1307]: pam_unix(passwd:chauthtok): password changed for sshd
Aug 19 17:28:04 kali passwd[1307]: gkr-pam: couldn't update the login keyring password: no old password was entered
Aug 19 17:28:14 kali sshd[1290]: pam_unix(sshd:session): session closed for user root
Aug 19 17:28:14 kali systemd-logind[553]: Removed session 5.
Aug 19 17:35:01 kali CRON[1328]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 19 17:35:01 kali CRON[1328]: pam_unix(cron:session): session closed for user root

Como posso fazer a conexão SSH com sucesso?

    
por Temmp 20.08.2018 / 03:30

1 resposta

2

Qualquer sabor do Windows Subsystem para Linux no Windows não é exatamente o seu Linux comum. (veja o link da questão relacionada no final para mais dados)

O SSH remoto precisa de suporte a pseudo-terminais para funcionar corretamente. De acordo com estes dois artigos, só foi adicionado muito recentemente no Windows 14361 Insider preview Update em junho. Ainda não está disponível ao público em geral, portanto, o SSH remoto não funcionará em nenhum dos estilos da WSL Linux, por enquanto .

Parece que o WSL Ubuntu está se preparando para isso, e Kali costuma demorar um pouco para recuperar o atraso.

Além disso, o WSL não possui privilégios especiais e é qualquer outro usuário / processo regular do Windows. Serviços / daemons no WSL não continuam sendo executados depois que você fecha as caixas de linha de comandos da WSL, todos os processos são eliminados.

Seria melhor executar o Linux em uma VM se você tivesse que executar serviços Linux (permanentes).

Sobre o suporte a pseudo-terminais / pty, consulte:

O suporte do Tmux chega para Bash no Ubuntu no Windows

Windows 10 build 14361 para PC: Tudo o que você precisa saber

In Windows 10 build 14361, we've added Pseudo Terminal support to Windows Subsystem for Linux (WSL)

Veja a questão relacionada: Tentando executar um túnel regular na Debian versão 9.5 Linux

Veja também: O que são pseudo-terminais (pty / tty)?

PS. Eu não ignoro que há complicadas configurações / hacks para tentar executar serviços permanentes no WLS, que dependem do fato de o WSL estar intimamente ligado ao Windows. Eles são feios e eu duvido de sua confiabilidade.

Também ainda é desconhecido se a nova implementação do WSL pty permitirá que o OpenSSH funcione.

    
por 20.08.2018 / 06:11