Non sei in grado di inviare ssh a un altro computer, ma puoi eseguirne il ping?


20

Impossibile eseguire il ssh su un altro computer ma è possibile eseguire il ping? Non sei sicuro di cosa mi sto perdendo?
Utilizzando un router Netgear

bash-3.2$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
        inet 127.0.0.1 netmask 0xff000000 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether xx:xx:xx:xx:xx:xx 
        media: autoselect (none)
        status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether xx:xx:xx:xx:xx:xx 
        inet6 xxxx::xxxx:xxxx:xxxx:xxxxxx prefixlen 64 scopeid 0x5 
        inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255
        media: autoselect
        status: active
fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
        lladdr xx:xx:xx:xx:xx:xx:xx:xx 
        media: autoselect <full-duplex>
        status: inactive
bash-3.2$ ssh jeremy@10.0.0.4
ssh: connect to host 10.0.0.4 port 22: Connection refused
bash-3.2$ ssh -p 5900 jeremy@10.0.0.4
ssh: connect to host 10.0.0.4 port 5900: Connection refused
bash-3.2$ ping 10.0.0.3
PING 10.0.0.3 (10.0.0.3): 56 data bytes
64 bytes from 10.0.0.3: icmp_seq=0 ttl=64 time=0.046 ms
64 bytes from 10.0.0.3: icmp_seq=1 ttl=64 time=0.079 ms
64 bytes from 10.0.0.3: icmp_seq=2 ttl=64 time=0.078 ms
64 bytes from 10.0.0.3: icmp_seq=3 ttl=64 time=0.077 ms
64 bytes from 10.0.0.3: icmp_seq=4 ttl=64 time=0.079 ms
64 bytes from 10.0.0.3: icmp_seq=5 ttl=64 time=0.081 ms
64 bytes from 10.0.0.3: icmp_seq=6 ttl=64 time=0.078 ms
^C
--- 10.0.0.3 ping statistics ---
7 packets transmitted, 7 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.046/0.074/0.081/0.011 ms
bash-3.2$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4): 56 data bytes
64 bytes from 10.0.0.4: icmp_seq=0 ttl=64 time=2.667 ms
64 bytes from 10.0.0.4: icmp_seq=1 ttl=64 time=2.675 ms
64 bytes from 10.0.0.4: icmp_seq=2 ttl=64 time=2.969 ms
64 bytes from 10.0.0.4: icmp_seq=3 ttl=64 time=2.663 ms
64 bytes from 10.0.0.4: icmp_seq=4 ttl=64 time=2.723 ms
^C
--- 10.0.0.4 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.663/2.739/2.969/0.117 ms
bash-3.2$ 

Risposte:


17

Il server non sta eseguendo sshd (e quindi non è in ascolto sulla porta 22) o ha un firewall che blocca la porta 22 (la porta ssh predefinita), o in casi incredibilmente rari che esegue ssh su qualche altra porta (che quasi certamente non è il caso) .

Primo controllo per assicurarsi che sshd sia installato (usando esempi debian)

sudo apt-get install openssh-server

E se è così, è in esecuzione:

ps -ef | grep sshd

quindi controlla se sta ascoltando la porta 22

sudo netstat -nlp | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      946/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      946/sshd

quindi controlla le regole del tuo firewall (questo varia in modo significativo, quindi mostrerò un esempio di debian / ubuntu / etc):

sudo ufw status

sudo ufw show listening
tcp:
  22 * (sshd)
  24224 * (ruby)
tcp6:
  22 * (sshd)
  8080 * (java)
udp:
  123 10.X.Y.Z (ntpd)
  123 * (ntpd)
  18649 * (dhclient)
  24224 * (ruby)
  34131 * (ruby)
  60001 10.87.43.24 (mosh-server)
  68 * (dhclient)
udp6:
  123 fe80::1031:AAAA:BBBB:CCCC (ntpd)
  123 * (ntpd)
  48573 * (dhclient)

Se lo ufwmostra come chiuso, quindi esegui (di nuovo un esempio debian / ubuntu)

sudo ufw allow 22

1
FWIW, è un po 'comune avere macchine rivolte verso l'esterno che eseguono SSH su una porta diversa per mitigare la superficie di attacco
sg

3

Un po 'strano nel buio, ma assicurati che il tuo IP non sia cambiato. Ho riscontrato questo problema una volta: ho impostato un .bashrcalias alias sshdev='ssh me@123.2.3.4'come metodo di accesso tipico e un giorno ho iniziato a ricevere il seguente errore:

ME-M-216C:~ me$ sshdev 
ssh: connect to host 123.2.3.4 port 22: Connection refused

Abbiamo appena avuto un'interruzione di corrente sul lavoro che ha ripristinato gli IP, quindi stavo eseguendo correttamente il ping di un IP ma non era la macchina corretta. Puoi usarlo nslookup <IP>per assicurarti che sia il nome corretto della macchina in cui stai provando ssh.


1

Quando viene visualizzato il messaggio "connessione rifiutata", significa che un demone non è in ascolto su quella porta o che un firewall sta rifiutando la connessione. Per risolvere il problema, assicurarsi che sshsia in esecuzione e che le regole del firewall locale non rifiutino le connessioni in entrata su quella porta.


1

Ho avuto lo stesso problema con Linux Lite. Per risolvere il problema, ho dovuto accedere a Impostazioni> Configurazione firewall. Dopo aver effettuato l'accesso a root, ho modificato le impostazioni in entrata su Consenti e ha funzionato.


0

Due pensieri.

  1. Il firewall consente le connessioni sulla porta 22 alla macchina?
  2. Il demone ssh ( sshd) è in esecuzione?

0

questo comando ha funzionato per me. Prova questo.

update-rc.d -f ssh enable 2 3 4 5

0

Passaggi seguiti in generale: 1) ping all'host di destinazione e verifica e verifica incrociata l'indirizzo IP inserito. 2) Controllare lo stato sshd del servizio sudo su entrambi gli host. Se interrotto, avviare il servizio sshd. Se viene visualizzato un errore sshd.service non trovato, installare openssh-server -> sudo apt install -y openssh-server e riavviare sshd.service 3) Disabilitare il firewall o apportare modifiche ai file di configurazione deve essere considerata l'ultima opzione.

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.