Je me connecte à un serveur distant via mon Mac depuis environ un mois maintenant. Récemment cependant, j'ai essayé de me connecter en utilisant ssh dylan @ MY_IP et j'ai reçu ce message.
ssh_exchange_identification: read: Connection reset by peer
J'ai également reçu des informations de diagnostic ...
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to {MY IP{ [MY IP] port 22.
debug1: Connection established.
debug1: identity file /Users/watson/.ssh/id_rsa type -1
debug1: identity file /Users/watson/.ssh/id_rsa-cert type -1
debug3: Incorrect RSA1 identifier
debug3: Could not load "/Users/watson/.ssh/id_dsa" as a RSA1 public key
debug1: identity file /Users/watson/.ssh/id_dsa type 2
debug1: identity file /Users/watson/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
Après avoir fait quelques recherches, j'ai essayé ce qui suit ...
- Redémarré mon routeur
- Supprimé mon fichier "known_hosts"
- Supprimé mon fichier "known_hosts"
- Sortie et renouvellement de mon DHCP
- J'ai également essayé à partir d'un autre appareil (Windows) en utilisant Putty avec une erreur également
Notez que je n'ai apporté aucune modification au serveur pour empêcher cette communication.
De plus, je ne sais pas si cela entraînerait des problèmes, mais je me suis connecté à lui par son nom de domaine ainsi que son IP.
De plus, j'ai pu me connecter avec succès à partir d'une autre adresse IP.
Je sais que c'est un gros problème avec de nombreuses ressources, mais beaucoup de solutions n'ont pas fonctionné et je n'ai vraiment vu aucun type de résolution pour personne.
Mise à jour
Je l'ai forcé au protocole 1. Au lieu de "Connexion réinitialisée par l'homologue", je reçois maintenant "Connexion fermée par l'hôte distant". L'exécuter avec des informations de débogage a révélé:
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 53: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to MY_IP [MY_IP] port 22.
debug1: Connection established.
debug1: identity file /Users/watson/.ssh/identity type -1
debug1: identity file /Users/watson/.ssh/identity-cert type -1
ssh_exchange_identification: Connection closed by remote host
/Users/watson/.ssh/id_dsa
? Essayez de sauvegarder le fichier et supprimez-le.ssh -1 ...
Réponses:
C'est ainsi que j'ai résolu l'erreur "ssh_exchange_identification: Connexion fermée par l'hôte distant" lors de la connexion à un serveur SSH.
J'ai eu cette erreur en essayant de me connecter à une machine Linux embarquée, après avoir déballé un paquet à la racine. De nombreux fichiers de bibliothèque ont été remplacés, y compris libssl.
Essayant de se connecter:
La recherche sur Google semblait suggérer de vérifier hosts.deny et hosts.allow, mais ma machine cible n'avait pas de tels fichiers.
Après un redémarrage (selon la suggestion de Karthik), sshd ne fonctionnait pas. J'ai essayé de démarrer manuellement sshd sur la cible:
J'ai remplacé /usr/lib/libssl.a par la version originale et j'ai commencé sshd et les choses étaient revenues à la normale. Dans mon cas, le problème était dû à une version incorrecte du package que j'avais initialement décompressé vers root.
la source
J'obtenais la même erreur (mais de n'importe quelle machine, y compris la machine gênante via
ssh localhost
).Cela a commencé lorsque j'ai migré un profil d'utilisateurs; c'est-à-dire après avoir copié des fichiers en tant que root, puis fait des commandes comme
chown -R username /Users/username/Destop
de toute façon, vous ne savez pas vraiment pourquoi / var / empty owner a été changé en nom d'utilisateur, mais
ssh
doit absolument/var/empty
appartenir à root (sinon vous obtenezssh_exchange_identification: read: Connection reset by peer
):la source
/var/empty
résolu le problème pour moi.Ce n'est pas un problème avec votre machine locale, mais un problème côté serveur. Il peut y avoir plusieurs facteurs à l'origine de ce problème:
Dans le passé, lorsque j'ai eu ces problèmes, j'ai fait l'une des deux choses, dans l'ordre suivant:
Le plus souvent, 1 résout le problème, mais j'ai dû en faire 2 dans certains cas .. Je n'ai pas été en mesure de comprendre pourquoi c'est le cas, seulement que cela a fonctionné. Peut-être que cela a quelque chose à voir avec la façon dont la clé est présentée, ou peut-être qu'elle a été corrompue d'une manière ou d'une autre - je n'en suis pas sûr. Mais ce que je sais, c'est que l'erreur est entièrement liée au serveur et à la façon dont la prise de contact se produit lorsque la connexion SSH est établie.
la source
J'ai configuré SSH avec Cygwin et dans mon cas, c'est le pare-feu Windows qui a causé exactement cette erreur, alors assurez-vous d'autoriser les connexions au port 22.
la source
J'ai réussi à résoudre ce problème moi-même très facilement.
Dans OS X normal, vous pouvez résoudre ce problème en basculant simplement "Connexion à distance" dans les Préférences Système / Partage.
Cependant, s'il s'agit d'un serveur sans tête (comme dans mon cas), vous pouvez utiliser l'application OSX Server pour accéder à (votre nom de serveur) / Paramètres et basculer "Connexions Secure Shell on et off à nouveau"
la source
Si vous utilisez une clé privée ou une clé de sécurité pour vous connecter à votre serveur, vous devez modifier l'autorisation pour le fichier de clé sur 660, à l'aide de la commande
sudo chmod 660 File_Name
la source
ssh
non-fonctionnement, il n'est pas clair comment ce problème infligerait au hasard un système qui fonctionne. (2) Cette réponse, telle qu'elle est, serait plus utile si vous identifiez le fichier dont vous parlez, ou fournissez des instructions pour permettre à un utilisateur de l'identifier. (3) Je suppose que vous parlez d'un fichier dans (sous) le répertoire personnel de l'utilisateur. Si tel est le cas, celasudo
ne devrait pas être nécessaire.