ssh Connection refusé: comment dépanner?

17

J'essaie:

$ ssh eric@myserver

myserverest une machine dans l'intranet. Je peux cingler myserverou répondre à HTTP sur le port 8080, etc., mais quand j'essaye ssh, j'obtiens

ssh: connect to host myserver port 22: Connection refused

J'utilise Ubuntu 10.

ps -ax, comme suggéré donne:

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
Eric Wilson
la source

Réponses:

15

Vous n'avez pas de démon SSH en cours d'exécution. Si vous regardez la sortie de la ps axcommande, vous voyez que les deux seuls processus avec 'ssh' dans la description sont ssh-agent(ce qui fait quelque chose de complètement différent sshd) et le grep sshprocessus que vous utilisez pour filtrer la sortie ps.

Selon la distribution installée, vous devrez peut-être installer ou exécuter le sshserveur, généralement appelé openssh-serverou sshdselon votre gestionnaire de packages.

Shadur
la source
13

Étapes pour déboguer le problème ci-dessus:

  1. Utilisez l' nmapoutil pour savoir quels ports sont ouverts sur ce serveur. nmapest un scanner de ports. Puisqu'il est possible que le serveur ssh s'exécute sur un port différent. nmapvous donnera une liste des ports ouverts.

     $ nmap myserver
    

2. Vous pouvez maintenant vérifier quel serveur fonctionne sur un port donné. Supposons que dans la sortie de nmap, le port 2424 soit ouvert. Vous pouvez maintenant savoir quel serveur fonctionne sur 2424 à l'aide de l'outil nc (netcat).

 $ nc -v -nn myserver portno

Supposons que la sortie du port 2424 soit:

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

Cela signifie que ssh fonctionne sur 2424.

Continuez à changer le portno dans la commande ci-dessus et vérifiez tous les ports répertoriés ouverts par nmap.

pradeepchhetri
la source
3

Cela signifie que le serveur ssh ne fonctionne pas sur cette machine ou que le pare-feu ne permet pas à ssh de passer. Vous pouvez vérifier si ssh fonctionne avec 'ps -ax | grep ssh '.

David Schwartz
la source
Question modifiée pour afficher les résultats de ps -ax. Pas sûr de ce que ça signifie.
Eric Wilson
1
Cela signifie sshne fonctionne pas.
David Schwartz
1
Bizarre. Je ne sais pas pourquoi vous avez proposé à deux reprises une aide qui n'est pas vraiment utile. Vous proposez d'abord une commande utile pour vérifier si ssh est en cours d'exécution, sans me dire comment interpréter les résultats. Ensuite, vous fournissez l'interprétation minimale de ces résultats, sans aucune indication sur la façon dont vous êtes arrivé à cette interprétation, ni sur l'action qui pourrait être appropriée. Je ne sais pas si vous essayez de m'aider et si vous évaluez mal mon niveau d'expérience, ou si vous essayez de mettre en évidence mon ignorance.
Eric Wilson
3
La liste des processus ne comprend pas de sshdprocessus, ce qui signifie qu'il sshdn'est pas en cours d'exécution. La solution est de commencer sshd.
David Schwartz
1

Les deux options précédentes sont bonnes. Vous pouvez également utiliser les arguments -vou -vv.

$ ssh -vv eric@myserver
frogstarr78
la source
0

J'ai également rencontré ce problème, mais dans un environnement VirtualBox, pour le résoudre, nous devons définir l'adresse IP pour qu'elle soit dans le même segment LAN; par exemple:

Sur ma machine hôte, j'ouvre cmdet tape ipconfig. J'obtiens 100.2.2.1 (par exemple).

Donc, dans la machine virtuelle, nous devons définir l'adresse de la machine virtuelle /etc/hostssur une valeur comme 100.2.2.3, jeter un œil au nombre final et rebondir sur la machine virtuelle, mais avant de démarrer la machine virtuelle, configurer le réseau dans les paramètres du virtuel machine, nous devons donc définir la carte réseau en connexion de pont.

Tout cela se fait dans un environnement Solaris.

luis torres
la source