Pourquoi est-ce que je reçois une erreur «port 22: connexion refusée»?

70

Je reçois un

port 22: Connection refused 

erreur lors de la connexion à un serveur.

Le client et le serveur openssh sont installés et ils sont en cours d'exécution. Mais il y a toujours une erreur. S'il vous plaît aider.

Ankesh
la source
2
Juste pour clarifier, le serveur openssh est-il installé sur le serveur?
Kevin
Vérifiez que ssh fonctionne sur le port 22 et si vous avez une règle de pare-feu bloquant le port.
Manula Waidyanatha
1
Selon moi, configurez le pare-feu de sorte qu'il permette de ssh (port 22), qui est actuellement bloqué par le pare-feu.
Ketan Patel
Cela pourrait aussi être dû à une perte temporaire du réseau. Alors vérifiez votre connexion internet.
user648610

Réponses:

78

J'ai parcouru ce problème et j'ai finalement obtenu une réponse appropriée.

sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22

Puis est entré raspi-configdans une fenêtre de terminal et a activé ssh.

Cela permettra d'utiliser le port 22 pour sshd.

Doogle
la source
Même problème ici que @SDsolar
Nadav B
@Nadiv, j'ai également dû utiliser raspi-config pour activer ssh. La réponse a été modifiée pour refléter cela.
SDsolar le
Effectué les trois premières lignes sur les deux ordinateurs et le fichier est maintenant transféré avec succès. Pourquoi Ubuntu ne vient-il pas avec ceux-ci installés / activés par défaut? L' connection refusederreur est tellement énigmatique que je ne savais pas si c'était un problème de pare-feu, de nom d'utilisateur, d'adresse IP, etc. Très frustrant.
Hatefiend
sudo ufw allow 22travaillé une fois. Là encore, l'erreur a commencé à apparaître.
Vineeshvs
32

Sur le serveur, vérifiez que sshd est en cours d’exécution et écoute sur le port 22:

$ sudo netstat -anp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1538/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      1538/sshd       

Si vous n'obtenez pas de résultats, ou s'ils ne montrent pas que vous écoutez sur TCP 0.0.0.0:22 ... corrigez cela.

Si vous montrez que sshd est en cours d'exécution et écoute sur le port TCP 22, assurez-vous qu'aucune règle de pare-feu ne vous empêche. Encore une fois, sur le serveur:

$ sudo iptables -L | grep ssh
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh 

Ou alternativement

$ sudo ufw verbose
Status: active

To                         Action      From
--                         ------      ----
22                         DENY        Anywhere
22/tcp                     DENY        Anywhere

Si vous voyez une règle comme celle ci-dessus, vous devrez résoudre ce problème.

Si vous ne voyez pas de règles de pare-feu et que le service s'exécute sur le serveur, il est temps de vérifier votre poste de travail et le réseau auquel il est connecté. Pouvez-vous vous connecter à d'autres serveurs? Pouvez-vous cingler votre propre interface ou adresse de bouclage? Etc.

Jim Salter
la source
1
et si vous pouvez vous connecter à d'autres serveurs?
opensourcechris
2
Hé, merci d'avoir répondu, le mien n'est pas le port 22, mais le 2222. Vous avez dit de réparer ça, mais comment?
Yogesh Darji
Le mien n'a donné aucun résultat.
SDsolar
corrigez le avec: sudo ufw allow 22(ou quel que soit votre port)
John D
netstat est obsolète (et n'est pas installé par défaut sur les versions les plus récentes d'Ubuntu - La commande 'netstat' est introuvable, mais peut être installée avec ... ). Peut-être mettre à jour pour iproute2 ?
Peter Mortensen le
14

Essaye ça

sudo apt-get remove openssh-client openssh-server

puis

sudo apt-get install openssh-client openssh-server

ça a fonctionné pour moi :)

Probablement pas le plus solution orthodoxe ... :)

PJunior
la source
3
Utiliser dpkg-reconfigure serait plus facile à utiliser à la place d'une solution de désinstallation / réinstallation
Stephen Michael Kellat
1
Je devais utiliser apt-get purge openssh-server (au lieu de remove) pour que cela fonctionne.
11101101b
6

Je suis tombé sur le même problème après avoir installé Raspbian. Solution qui a fonctionné pour moi:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server
Wouter
la source
Si cela a fonctionné, vous devez avoir changé votre sshd-config auparavant.
Guntbert
J'ai édité sshd_config sur Raspbian en essayant de configurer ssh. Cette solution a fonctionné pour moi.
Scott
+1 Seule solution qui a fonctionné!
Nadav B
1

Les commandes suivantes ont fonctionné pour moi:

cd /root/.ssh
vi known_hosts

Supprimez maintenant tout le contenu de ce fichier et entrez sur le terminal:

service sshd restart

Source: SSH - Connexion refusée

Sruthil Lal SB
la source
problème similaire pour moi, mais j'ai effacé mes hôte connus avec ssh-keygen -f "/home/MYUSER/.ssh/known_hosts" -R MYHOST, en remplaçant mon utilisateur Linux et mon hôte distant auquel j'essayais de me connecter
Chris
1

Cela pourrait résoudre le problème pour vous aussi. Essayez la connexion de transfert de port 22 de votre adresse IP sortante à votre adresse IP locale située sur le même port. Travaillé pour moi me permettant de SSH pour ordinateur à distance Ubuntu.

jackw11111
la source
0

L'IP statique était faux dans mon cas. Découvert en faisant ping <my_ip>après la commutation du serveur. Il y avait encore du ping même quand le serveur était éteint. Changer l'adresse IP a résolu le problème.

vineeshvs
la source