Sto provando:
$ ssh eric@myserver
dove myserver
è una macchina nella intranet. Posso eseguire il ping di myserver
o rispondere a HTTP sulla porta 8080 e così via, ma quando provo ssh
, ottengo
ssh: connect to host myserver port 22: Connection refused
Sto usando Ubuntu 10.
ps -ax
, come suggerito fornisce:
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
Risposta
Non hai un demone SSH in esecuzione. Se guardi loutput del comando ps ax
, vedrai che gli unici due processi con “ssh” nella descrizione sono ssh-agent
(che fa qualcosa di completamente diverso da sshd
) e dal processo grep ssh
che stai utilizzando per filtrare loutput di ps
.
A seconda della distribuzione installata, potrebbe essere necessario installare o eseguire il ssh
server, solitamente chiamato
o sshd
a seconda del gestore di pacchetti.
Risposta
Passaggi per eseguire il debug del problema precedente:
-
Utilizza lo strumento
nmap
per sapere quali porte sono aperte in quel server .nmap
è un port scanner. Poiché potrebbe essere possibile che il server ssh sia in esecuzione su una porta diversa.nmap
ti fornirà un elenco di porte aperte.$ nmap myserver
2. Ora puoi controllare quale server è in esecuzione su una determinata porta. Supponiamo che nelloutput di nmap, la porta 2424 sia aperta. Ora puoi quale server è in esecuzione su 2424 utilizzando lo strumento nc (netcat).
$ nc -v -nn myserver portno
Supponi che loutput della porta 2424 sia:
myserver 2424 open SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5
Questo significa che ssh è in esecuzione su 2424.
Continua a cambiare portno nel comando precedente e controlla tutte le porte che sono elencate aperte da nmap.
Risposta
Ciò significa che il server ssh non è in esecuzione su quella macchina o il firewall non consente a ssh di passare. Puoi controllare se ssh è in esecuzione con “ps -ax | grep ssh”.
Commenti
Answer
Il le due opzioni precedenti sono buone. Puoi anche utilizzare gli argomenti -v
o -vv
.
$ ssh -vv eric@myserver
Risposta
Ho affrontato anche questo problema, ma in un ambiente VirtualBox, quindi per risolverlo dobbiamo impostare lindirizzo IP in modo che si trovi nella stessa LAN segmento; ad esempio:
Sulla mia macchina host, apro cmd
e digito ipconfig
. Ottengo 100.2.2.1 (ad esempio).
Quindi nella macchina virtuale dobbiamo impostare lindirizzo della VM in /etc/hosts
su un valore come 100.2.2.3 , dai unocchiata al numero finale e rimbalza la macchina virtuale, ma prima di avviare la macchina virtuale configura la rete nelle impostazioni della macchina virtuale, quindi dobbiamo impostare ladattatore di rete in connessione bridge.
Tutto questo è in un ambiente Solaris.
ps -ax
. Non sono sicuro di cosa significhi.ssh
non è in esecuzione.sshd
, il che significa chesshd
non è in esecuzione. La soluzione è avviaresshd
.