Salut, j'ai un problème avec mon SSH, qui est arrêté de fonctionner comme par magie et je ne pouvais pas comprendre pourquoi. Le message qu'il donne est:
ssh: connect to Host <Host> port 22: Connection refused
Je ne vois aucun message d'erreur lorsque j'écris dmesg
mais je reçois un suivi de telnet localhost 22
Trying 127.0.0.1...
telnet: Unable to connect to remote Host: Connection refused
J'ai essayé les solutions que j'ai vues dans des cas similaires [1] et [2] mais cela n'a toujours pas résolu mon problème. Les entrées et les sorties sont les suivantes:
>> Sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
>> Sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Notez que c'était déjà ACCEPTER je n'avais aucun problème avant même d'entrer la commande Sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
. J'ai aussi essayé de redémarrer ssh mais ça n'a rien changé
>>netstat -a | egrep 'Proto|LISTEN'
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:20128 *:* LISTEN
tcp 0 0 localhost:17600 *:* LISTEN
tcp 0 0 localhost:20129 *:* LISTEN
tcp 0 0 localhost:17603 *:* LISTEN
tcp 0 0 localhost:21128 *:* LISTEN
tcp 0 0 deathstar:domain *:* LISTEN
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 *:db-lsp *:* LISTEN
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
tcp6 0 0 [::]:db-lsp [::]:* LISTEN
Je ne sais pas quoi essayer d'autre, alors espérons que cela suffira à résoudre le problème.
Le repos est ajouté après le commentaire de @ Ashu
Sudo lsof -i | grep ssh
rien ne s'est passé
>>netstat -l --numeric-ports | grep 22
unix 2 [ ACC ] STREAM LISTENING 1618183 @jack-com.canonical.Unity.Master.Scope.files.T1731348652205882
>>Sudo iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Eddited après le commentaire de @ TheSchwa
>>ps aux | grep sshd
jack 3711 0.0 0.0 15944 2220 pts/26 S+ 14:08 0:00 grep --color=auto sshd
J'ai d'abord essayé de supprimer et de réinstaller ssh mais cela n'a pas fonctionné pour moi, puis j'ai essayé de le purger:
Sudo apt-get purge openssh-server
Sudo apt-get install openssh-server
alors maintenant son travail.
L'erreur TCP "Connexion refusée" signifie qu'il y a un hôte actif sur cette adresse IP mais que le port auquel vous essayez de vous connecter (22 pour ssh) n'est pas ouvert.
Tout d’abord, vérifiez votre nom d’hôte et/ou votre adresse IP.
La raison la plus probable est que quelqu'un a arrêté le démon ssh ou l'a configuré pour utiliser un autre port au lieu du port par défaut 22.
Si vous avez un accès physique à votre serveur, connectez-vous à ce serveur et tapez la commande Sudo netstat -tupan
. Idéalement, vous devriez voir une ligne comme celle-ci:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1053/sshd
Si vous n'essayez pas de démarrer sshd et/ou de vérifier s'il est configuré pour écouter sur le port 22.
EDIT
Les bits sur lesquels se concentrer sont:
:22
- port 22
LISTEN
- un processus est en cours d'exécution et attend les connexions entrantes sur le port 22
sshd
- le nom du processus.
Si vous ne voyez pas une telle ligne, votre serveur ssh est peut-être mal configuré et ne parvient pas à démarrer. Essayez cette page pour savoir comment l'exécuter au premier plan et le dépanner.
Le pare-feu de votre serveur est configuré pour que le port soit ouvert, mais rien n’écoute pour répondre à votre connexion.
Vous devez avoir sshd (le démon ssh) installé et en cours d'exécution ...
Connexion SSH refusée pour la raison suivante-
le port par défaut (22) a été remplacé par autre chose. Vérifiez votre fichier/etc/ssh/sshd_config pour tout changement de port.
Conflit IP sur le réseau local. Utilisez la commande arping pour déterminer tout conflit. voir votre piscine DHCP.
le port ssh n'est pas autorisé sur ip-tables/firewall. Vérifiez votre iptables/firewall et autorisez.
* Désinstaller/réinstaller le paquet ssh n'est pas une bonne idée car il changera de nombreuses clés et passera.
L’un des problèmes les plus courants est le service sshd lui-même. Avez-vous vérifié s'il fonctionne réellement? De plus, j'ai remarqué que vous éditiez directement vos iptables, donc si vous aviez ufw/firewalld en cours d'exécution, vous pourriez aussi bien le vérifier.
Assurez-vous également que le serveur ssh exécute la bonne adresse IP et que le nom de domaine complet est routé vers la bonne adresse IP.
Vous devez créer un répertoire manquant comme ceci
mkdir /var/run/sshd
chmod 0755 /var/run/sshd
Puis démarrez le serveur ssh défectueux avec:
service ssh start
Et c'est tout!