Il server Cygwin ssh non accetta connessioni


14

Ho appena impostato un server SSH (OpenSSH) su una macchina Windows 7 usando Cygwin e sto provando a collegarmi usando PuTTY su una macchina Windows Vista ma continuo a scadere la connessione. Ho verificato l'attività di rete sulla macchina Win 7 con Wireshark e ho scoperto che sto ricevendo TCP SYN sulla porta 22 sulla macchina Win 7, ma il server ssh non sembra rispondere. Ho controllato il numero di porta che sshd è configurato per l'uso, ho controllato le mie regole del firewall e verificato che posso ssh localhost (cosa che posso fare bene). Non ho assolutamente idea di come risolvere questo problema.


Probabilmente dovresti controllare nuovamente il tuo firewall e / o approfondire questo aspetto.
jjlin,

Risposte:


23

Windows Firewall potrebbe essere in esecuzione. Apri: Pannello di controllo -> Windows Firewall -> Consenti un programma o una funzionalità tramite Windows Firewall

Fai clic sul pulsante "Modifica impostazioni", quindi sul pulsante "Consenti un altro programma ...". SSHD probabilmente non è nell'elenco che appare, quindi usa il pulsante "Sfoglia ..." per trovare il binario e fai clic su "Apri" e poi su "Aggiungi". Il mio era in C: \ cygwin \ usr \ sbin \ sshd.exe

Da qualche parte lì puoi decidere quali "Tipi di posizione di rete ..." vuoi usare. Ho lasciato il mio con Privato controllato e pubblico deselezionato. Ora posso accedere da remoto.


Oltre alla risposta di Frank , quando ho installato una VPN per la privacy su un computer sulla mia rete domestica, ho riscontrato lo stesso problema. Fu perché con la VPN il computer ora si stava connettendo con la sshd su una rete pubblica. Per risolvere questo problema, ho dovuto consentire l'uso di sshd tramite Windows Firewall sia per luoghi pubblici che privati.
James Hirschorn,

5

Il vostro sshd_config specificare ListenAddress come 0.0.0.0 o 127.0.0.1 ?

Se è 0.0.0.0 o appena commentato, è possibile connettersi dall'esterno della macchina, ovvero da un altro computer.

Se è 127.0.0.1 (o qualsiasi altro numero 127.0.0.x ), allora è in ascolto SOLO su LOCALHOST e puoi accedere solo dal computer SAME. Le macchine esterne vengono negate.


2
È commentato.
Surma,

1

Dopo aver fatto casino con Windows Firewall senza alcun risultato, alla fine ho scoperto che dovevo consentire le connessioni alla mia sottorete in Cygwin tramite il file /etc/hosts.allow.

Questa riga (usando la mia sottorete) come prima regola ha risolto il problema per me.

TUTTO: 192.168.0.0/24: consentire


1
Un problema con hosts.allow o hosts.deny non causerebbe un timeout della connessione. Farebbe sì che il server SSH accettasse la connessione, quindi la abbandonasse durante il processo di autenticazione.
Kenster,

@Kenster hosts.allow e hosts.deny funzionano a livello TCP. Non saresti in grado di connetterti al server SSH perché ti blocchi al livello 4, prima ancora di raggiungere il server SSH.
mtak,

@mtak No, non è vero. hosts.allow e hosts.deny sono file di configurazione per i wrapper TCP . Il programma server (sshd in questo caso) deve accettare la connessione TCP, ottenere l'indirizzo IP dell'endpoint remoto, quindi chiamare i wrapper TCP per vedere se il client deve essere autorizzato. Se libwrap dice di no, il server generalmente interrompe la connessione.
Kenster,

Vedere ad esempio sshd.c . Cerca gli ifdefs LIBWRAP. Ecco la funzione hosts_access che sshd sta chiamando. Noterò anche che la versione più recente di sshd.c rimuove il supporto libwrap.
Kenster,

@Kenster, mio ​​male, hai ragione. Ho provato e ottengo il seguente errore: ssh_exchange_identification: Connection closed by remote host. Buona giornata a SU :)
mtak

1

Per me il problema riguardava la proprietà errata del /var/emptyfile. Il problema è diventato evidente dopo aver messo sshd in modalità debug con /usr/sbin/sshd.exe -D -dd. Ho dovuto correggerlo con:

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

Utente e gruppo sono stati prelevati dalla ls -la /vardirectory (appena abbinato ad altri file). Maggiori informazioni qui: https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC340


Grazie per aver sottolineatosshd -D -dd
John Oxley,

0

Assicurati di aver vinto 7 L'antivirus non blocca la porta 22. Inoltre, vai al pannello di servizio di Windows e cerca CYGWINsshd e abilitalo. impostare l'accesso per individuare e selezionare la casella.

Ciò risolverà il problema: user @ mymachine ~ $ net start sshd Si è verificato un errore di sistema 1069.

Il servizio non è stato avviato a causa di un errore di accesso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.