O servidor Cygwin ssh não está aceitando conexões

14

Acabei de configurar um servidor SSH (OpenSSH) em uma máquina Windows 7 usando o cygwin e estou tentando conectar-me a ele usando PuTTY em uma máquina Windows Vista, mas continuo com o tempo limite de conexão esgotado. Verifiquei a atividade de rede na máquina Win 7 com o Wireshark e descobri que estou recebendo TCP SYN na porta 22 na máquina Win 7, mas o servidor ssh parece não responder. Eu verifiquei o número da porta que o sshd está configurado para usar, verifiquei minhas regras de firewall e verifiquei que eu posso ssh localhost (o que eu posso perfeitamente). Não tenho absolutamente nenhuma idéia de como solucionar esse problema.

Surma
fonte
Você provavelmente deve verificar seu firewall novamente e / ou elaborar esse aspecto.
Jjlin 5/07

Respostas:

23

Você pode ter o Firewall do Windows em execução. Abra: Painel de Controle -> Firewall do Windows -> Permitir um programa ou recurso pelo Firewall do Windows

Clique no botão "Alterar configurações" e depois no botão "Permitir outro programa ...". O SSHD provavelmente não está na lista exibida, portanto, use o botão "Procurar ..." para encontrar o binário e clique em "Abrir" e depois em "Adicionar". O meu estava em C: \ cygwin \ usr \ sbin \ sshd.exe

Em algum lugar lá dentro, você pode decidir quais "tipos de local de rede ..." deseja usar. Deixei o meu com Private marcado e público desmarcado. Agora posso entrar remotamente.

Frank
fonte
Além da resposta de Frank , quando instalei uma VPN de privacidade em um computador na minha rede doméstica, vi o mesmo problema. Isso porque, com a VPN, o computador agora estava se conectando com o sshd em uma rede pública. Para corrigir isso, eu tinha que permitir o sshd através do Firewall do Windows para locais públicos e privados.
James Hirschorn
5

Seu sshd_config especifica ListenAddress como 0.0.0.0 ou 127.0.0.1 ?

Se for 0.0.0.0 ou apenas comentado, você pode se conectar de fora da máquina, ou seja, de outro computador.

Se for 127.0.0.1 (ou qualquer outro número 127.0.0.x ), estará APENAS ouvindo no LOCALHOST e você poderá fazer login apenas na mesma máquina. Máquinas externas são negadas.

lornix
fonte
2
Está comentado.
Surma
1

Depois de mexer com o firewall do Windows, sem efeito, acabei descobrindo que precisava permitir conexões com minha própria sub-rede no próprio Cygwin, por meio do arquivo /etc/hosts.allow.

Essa linha (usando minha sub-rede) como primeira regra corrigiu o problema para mim.

ALL: 192.168.0.0/24: permitir

chriswhitmore
fonte
1
Um problema com hosts.allow ou hosts.deny não causaria um tempo limite de conexão. Isso faria com que o servidor SSH aceitasse a conexão e a descartasse durante o processo de autenticação.
Kenster
@Kenster hosts.allow e hosts.deny trabalham no nível TCP. Você não conseguiria se conectar ao servidor SSH porque fica bloqueado na camada 4, antes mesmo de chegar ao servidor SSH.
mtak
@ Mtk Não, isso não é verdade. hosts.allow e hosts.deny são arquivos de configuração para TCP Wrappers . O programa do servidor (sshd nesse caso) precisa aceitar a conexão TCP, obter o endereço IP do terminal remoto e chamar os wrappers TCP para ver se o cliente deve ser permitido. Se a libwrap recusar, o servidor normalmente interrompe a conexão.
Kenster
Ver, por exemplo sshd.c . Procure os ifdefs LIBWRAP. Aqui está a função hosts_access que o sshd está chamando. Também observarei que a versão mais recente do sshd.c remove o suporte à libwrap.
Kenster
@ Kenster, meu mal, você está certo. Eu tentei e eu recebo o seguinte erro: ssh_exchange_identification: Connection closed by remote host. Bom dia no SU :)
mtak
1

Para mim, o problema ocorreu com a propriedade incorreta do /var/emptyarquivo. O problema ficou óbvio depois de colocar o sshd no modo de depuração /usr/sbin/sshd.exe -D -dd. Eu tive que corrigi-lo com:

chown [user]:[group] /var/empty

Usuário e grupo foram retirados do ls -la /vardiretório (correspondiam apenas a outros arquivos). Veja mais informações aqui: https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC340

demisx
fonte
Obrigado por apontarsshd -D -dd
John Oxley
0

Certifique-se de que o win 7 Antivirus não está bloqueando a porta 22. Além disso, vá ao painel de serviço do Windows e procure por CYGWINsshd e ative-o. defina o logon para localizar e marcar a caixa.

Isso resolverá o problema: user @ mymachine ~ $ net start sshd Ocorreu um erro do sistema 1069.

O serviço não foi iniciado devido a uma falha de logon.

D Go
fonte