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
nmapper 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.nmapti 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.sshnon è in esecuzione.sshd, il che significa chesshdnon è in esecuzione. La soluzione è avviaresshd.