web-dev-qa-db-fra.com

Impossible d'ajouter l'hôte à la liste des hôtes connus

Mac OSX Lion 10.7.

Pour tenter de résoudre des problèmes d'environnement étranges (homebrew n'installe pas wget et j'ai eu toutes sortes de blocages et d'erreurs étranges), j'ai désinstallé zschrc et homebrew et un tas d'autres objets, puis installé Fish Shell.

Maintenant, chaque fois que j'essaie de pousser/tirer vers/depuis github, j'obtiens cette erreur:

The authenticity of Host 'github.com (204.232.175.90)' can't be established.
RSA key fingerprint is <string of colon-separated chars that I should probs keep private>.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the Host to the list of known hosts (/Users/sasha/.ssh/known_hosts).

J'ai donc essayé de vérifier les permissions de mon dossier ~./Ssh et j'ai obtenu ceci, ce qui me convient parfaitement:

-rw-r--r--  1 sasha  staff    97B Jul  9 22:56 config
-rw-------  1 sasha  staff   1.7K May 16  2012 id_rsa
-rw-r--r--  1 sasha  staff   403B May 16  2012 id_rsa.pub
drwx------  5 sasha  staff   170B Jul 15 09:56 known_hosts

Tout ce qui se trouve dans known_hosts est un fichier pem que j'ai utilisé pour ssh'ing (également avec l'invite "authenticité ...") vers une instance Amazon ec2, bien que j'aie essayé de copier id_rsa et id_rsa.pub lorsque la situation était désespérée. 

Une idée de ce qui se passe? J'adorerais résoudre ce problème afin de ne pas recevoir les invites tant de fois que je pousse/tire.

EDIT J'ai suivi ces instructions avec succès il y a longtemps. J'ai donc mes clés ssh sur Github, et elles sont reconnues. Ainsi, lorsque je lance ssh -T git @ github .com, je reçois 

Hi sashafklein! You've successfully authenticated, but GitHub does not provide Shell access.

Cela semble être exclusivement mon ordinateur local qui n’est pas satisfait de ma situation SSH.

41
Sasha

Known_hosts ne devrait-il pas être un fichier plat, pas un répertoire? 

Si ce n'est pas le problème, alors cette page sur Github pourrait être utile. Essayez d'utiliser SSH avec l'indicateur -v ou -vv pour voir les messages d'erreur détaillés. Cela vous donnera peut-être une meilleure idée de ce qui échoue.

16
CXJ

Dans votre cas spécifique, votre known_hosts est un dossier, vous devez donc d'abord le supprimer.

Pour les autres personnes rencontrant un problème similaire, veuillez cocher la permission correspondante sur votre ~/ssh/known_hosts car il peut appartenir à un utilisateur différent (par exemple, root). Donc, vous pouvez essayer de lancer:

Sudo chown -v $USER ~/.ssh/known_hosts

réparer.

94
kenorb

Pour les gars sur Ubuntu, si vous obtenez cette erreur:

Impossible d'ajouter l'hôte à la liste des hôtes connus

Ensuite, supprimez simplement le fichier known_hosts et réexécutez votre ssh. Ceci régénérera le fichier known_Host avec les autorisations appropriées et ajoutera l'hôte distant que vous essayez de ssh dans ce fichier.

24
Kingz

Je pense que la question du PO est résolue en supprimant le fichier ~/.ssh/known_hosts (qui était un dossier, pas un fichier). Mais pour les autres personnes susceptibles d'avoir ce problème, j'ai remarqué qu'un de mes serveurs avait des autorisations étranges (400):

-r--------. 1 user user 396 Jan 7 11:12 /home/user/.ssh/known_hosts

J'ai donc résolu cela en ajoutant propriétaire/utilisateur PLUS write. 

chmod u+w ~/.ssh/known_hosts

Ainsi. ~/.ssh/known_hosts doit être un fichier plat, que vous devez posséder, et vous devez être capable de le lire et de l'écrire.

Vous pouvez toujours déclarer la faillite de known_hosts, la supprimer et continuer à faire les choses comme d'habitude, et la connexion à des objets (git/ssh) régénérera un nouvel hôte known_hosts qui devrait bien fonctionner.

15
Peter Dietz

C'est la solution dont j'avais besoin.

Sudo chmod 700 ~/.ssh/
Sudo chmod 600 ~/.ssh/*
Sudo chown -R ${USER} ~/.ssh/
Sudo chgrp -R ${USER} ~/.ssh/
6
Stoney Eagle

Cette commande a fonctionné pour moi, 

Sudo chown -v $USER ~/.ssh/known_hosts

comme mentionné par @kenorb. 

L'erreur venait en raison d'autorisations brisées, pour l'utilisateur actuel.

5
Ganesh prasad

Bon alors les autorisations idéales ressemblent à ceci
Pour le répertoire ssh (vous pouvez l'obtenir en tapant ls -ld ~/.ssh/)
drwx------ 2 oroborus oroborus 4096 Nov 28 12:05 /home/oroborus/.ssh/

d signifie répertoire, rwx signifie que l'utilisateur oroborus a les droits d'écriture, d'écriture et d'exécution. Ici oroborus est le nom de mon ordinateur, vous pouvez trouver le vôtre en faisant écho à $ USER. Le deuxième oroborus est en réalité le groupe. Vous pouvez en savoir plus sur ce que chaque champ signifie ici . Il est très important d’apprendre cela, car si vous travaillez sur Ubuntu/osx ou sur une distribution Linux, il est fort probable que vous le rencontriez à nouveau. 

Maintenant, pour que votre permission ressemble à ceci, vous devez taper
Sudo chmod 700 ~/.ssh 

7 en binaire est 111, ce qui signifie lecture 1 écriture 1 et exécution 1, vous pouvez décoder 6 par un moyen logique similaire, uniquement les autorisations lecture/écriture

Vous avez donné à votre utilisateur des autorisations d'écriture et d'exécution en lecture. Assurez-vous que vos autorisations de fichiers ressemblent à ceci. 

total 20
-rw------- 1 oroborus oroborus  418 Nov  8  2014 authorized_keys
-rw------- 1 oroborus oroborus   34 Oct 19 14:25 config
-rw------- 1 oroborus oroborus 1679 Nov 15  2015 id_rsa
-rw------- 1 oroborus oroborus  418 Nov 15  2015 id_rsa.pub
-rw-r--r-- 1 oroborus root      222 Nov 28 12:12 known_hosts

Vous avez donné ici la permission de lecture-écriture à votre utilisateur ici pour tous les fichiers. Vous pouvez le voir en tapant ls -l ~/.ssh/

Ce problème se produit car ssh est un programme qui tente d'écrire dans un fichier appelé known_hosts de son dossier. Lors de l'écriture, s'il sait qu'il ne dispose pas des autorisations suffisantes, il n'écrira pas dans ce fichier et échouera donc. C’est ma compréhension de la question, plus de personnes bien informées peuvent apporter plus de lumière à cet égard. J'espère que ça aide

4
Saras Arya

Cela m'est arrivé simplement à cause d'autorisations brisées. Mon utilisateur n'a pas d'accès en lecture ni en écriture à ce fichier. Correction des autorisations a résolu le problème

2
Andrea Gherardi

pour moi, je fais juste ceci: 

rm -rf ~/.ssh/known_hosts

puis : 

je viens juste de SSH à l'hôte cible et tout ira bien . Cela uniquement si vous ne savez pas, quelle autorisation et le propriétaire par défaut du fichier "known_hosts". 

0
Rizvi Faizi

Pour ceux qui sont intéressés, celui-ci a fonctionné pour moi dans Ubuntu:

  1. Allez dans le répertoire .ssh .

    $ cd ~/.ssh
    
  2. Supprimez le fichier known_hosts .

    $ rm known_hosts
    
  3. Re-Push vos changements Git.

0
Yves

Cette commande a fonctionné pour moi,

Sudo chmod +x ~/.ssh/known_hosts 
0
Nishu KC

Vérifiez les permissions du fichier, s'il est bon, vérifiez les répertoires parents

Je devais corriger

/home/sravindr/.ssh autorisations qui ont fonctionné pour moi

0
Sabarish