ssh Connessione rifiutata: come risolvere i problemi?


17

Sto provando:

$ ssh eric@myserver

dove si myservertrova una macchina nell'Intranet. Posso eseguire il ping myservero rispondere a HTTP sulla porta 8080, ecc., Ma quando provo ssh, ottengo

ssh: connect to host myserver port 22: Connection refused

Sto usando Ubuntu 10.

ps -ax, come suggerito dà:

eric@Isaiah:~$ ps -ax | grep ssh
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
 1641 ?        Ss     0:04 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session gnome-session
18376 pts/3    S+     0:00 grep --color=auto ssh

Risposte:


15

Non hai un demone SSH in esecuzione. Se guardi l'output dal ps axcomando, vedi che gli unici due processi con 'ssh' nella descrizione sono ssh-agent(che fa qualcosa di completamente diverso da sshd) e il grep sshprocesso che stai usando per filtrare l'output ps.

A seconda della distribuzione installata, potrebbe essere necessario installare o eseguire il sshserver, in genere chiamato openssh-servero in sshdbase al gestore pacchetti.


13

I passaggi per il debug del problema sopra:

  1. Utilizzare lo nmapstrumento per sapere quali porte sono aperte in quel server. nmapè uno scanner per porte. Poiché potrebbe essere possibile che il server SSH sia in esecuzione su una porta diversa. nmapti fornirà un elenco di porte aperte.

     $ nmap myserver
    

2 Ora puoi verificare quale server è in esecuzione su una determinata porta. Supponiamo che nell'output di nmap, la porta 2424 sia aperta. Ora è possibile quale server è in esecuzione su 2424 utilizzando lo strumento nc (netcat).

 $ nc -v -nn myserver portno

Supponiamo che l'uscita della porta 2424 sia:

myserver 2424 open
SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5

Questo significa che ssh è in esecuzione su 2424.

Continuare a cambiare il portno nel comando sopra e controllare tutte le porte che sono elencate aperte da nmap.


3

Ciò significa che o il server ssh non è in esecuzione su quella macchina o il firewall non sta permettendo ssh through. Puoi controllare se ssh è in esecuzione con 'ps -ax | grep ssh '.


Domanda modificata per mostrare i risultati di ps -ax. Non sono sicuro di cosa significhi.
Eric Wilson,

1
Significa che sshnon è in esecuzione.
David Schwartz,

1
Strano. Non sono sicuro del perché tu abbia già offerto due volte un aiuto che non è davvero utile. Per prima cosa suggerisci un comando utile per verificare se ssh è in esecuzione, senza dirmi come interpretare i risultati. Quindi fornisci l'interpretazione minima di questi risultati, senza un suggerimento su come sei arrivato a quell'interpretazione o quale azione potrebbe essere appropriata. Non sono sicuro che tu stia cercando di aiutarmi, e stai giudicando male il mio livello di esperienza, o se stai cercando di evidenziare la mia ignoranza.
Eric Wilson,

3
L'elenco dei processi non include un sshdprocesso, il che significa che sshdnon è in esecuzione. La soluzione è iniziare sshd.
David Schwartz,

1

Le due opzioni precedenti sono buone. Puoi anche usare gli argomenti -vo -vv.

$ ssh -vv eric@myserver

0

Ho affrontato anche questo problema, ma in un ambiente VirtualBox, quindi per risolverlo dobbiamo impostare l'indirizzo IP in modo che si trovi nello stesso segmento LAN; per esempio:

Sul mio computer host, apro cmde digito ipconfig. Ottengo 100.2.2.1 (ad esempio).

Quindi nella macchina virtuale dobbiamo impostare l'indirizzo della VM /etc/hostssu un valore come 100.2.2.3, dare un'occhiata al numero finale e far rimbalzare la macchina virtuale, ma prima di avviare la macchina virtuale configurare la rete nelle impostazioni del virtuale macchina, quindi è necessario impostare la scheda di rete nella connessione bridge.

Tutto questo è in un ambiente Solaris.

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.