N'a pas réussi à ajouter l'hôte à la liste des hôtes connus

Mac OSX Lion 10.7.

dans un effort pour obtenir autour des trucs d'environnement bizarres (homebrew n'installait pas wget, et j'avais toutes sortes de blocs bizarres et des erreurs), j'ai désinstallé zschrc et homebrew et un tas d'autres choses, puis installé coquille de poisson.

maintenant, chaque fois que j'essaie de pousser / tirer vers / de 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).

alors j'ai essayé de vérifier les permissions de mon ~./ SSH dossier, et obtenu cela, qui semble très bien à moi:

-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 est dans known_hosts est un fichier pem que j'ai utilisé pour ssh'ing (aussi avec le "authenticity..."prompt) à une instance EC2 D'Amazon, bien que j'ai essayé de copier id_rsa et id_rsa.un pub là-bas quand les choses étaient désespérées.

une idée de ce qui se passe? J'adorerais réparer ça pour ne pas être poussé autant de fois que je pousse/tire.

EDIT j'ai suivi ces instructions avec succès il y a un moment, donc j'ai mes clés ssh Github, et ils sont reconnus, afin que quand je lance ssh -T git@github.com, j'obtiens

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

Il semble être exclusivement mon ordinateur qui n'est pas satisfait de Ma situation ssh.

37
demandé sur Sasha 2013-07-16 08:52:04

8 réponses

ne devrait pas known_hosts être un fichier plat, pas un répertoire?

Si ce n'est pas le problème, puis cette page sur Github pourrait être d'une certaine aide. Essayez D'utiliser SSH avec le drapeau-v ou-vv pour voir les messages d'erreur verbeux. Ça pourrait vous donner une meilleure idée de ce qui ne va pas.

15
répondu CXJ 2013-07-16 05:00:08

Dans votre cas, votre known_hosts est un dossier, donc vous devez le supprimer en premier.

pour les autres personnes qui éprouvent un problème similaire, s'il vous plaît cochez la bonne permission à votre ~/ssh/known_hosts car il peut appartenir à un utilisateur différent (par exemple root). Vous pouvez donc essayer de courir:

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

pour le fixer.

85
répondu kenorb 2016-10-24 21:45:27

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

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

alors supprimez simplement le known_hosts le fichier, et de ré-exécuter votre ssh. Cela permettra de restaurer l' known_host le fichier avec les autorisations appropriées, et ajouter l'hôte distant que vous essayez de ssh dans ce fichier.

23
répondu Kingz 2017-07-17 10:50:44

je pense que la question de L'OP est résolue en supprimant le~/.ssh/known_hosts (qui est un dossier, pas un fichier). Mais pour les autres qui pourraient avoir ce problème, j'ai remarqué qu'un de mes serveurs avait des permissions bizarres (400):

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

donc j'ai résolu cela en ajoutant propriétaire/utilisateur plus écrire.

chmod u+w ~/.ssh/known_hosts

Donc. ~ / .ssh/known_hosts doit être un fichier plat, et doit être détenue par vous, et vous devez être capable de lire et d'écrire à il.

vous pouvez toujours déclarer la faillite known_hosts, la supprimer, et continuer à faire les choses comme d'habitude, et se connecter aux choses (git / ssh) régénérera un nouveau known_hosts qui devrait fonctionner très bien.

13
répondu Peter Dietz 2015-01-07 16:20:46

Ok donc les permissions idéales ressemblent à ceci

Pour le répertoire ssh (vous pouvez obtenir ceci 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 lire écrire et d'autorisation d'exécution. Ici oroborus est mon nom d'ordinateur, vous pouvez trouver le vôtre en faisant écho à $ USER. Le deuxième orobore est en fait le groupe. Vous pouvez en savoir plus sur ce que signifie chaque champ ici. Il est très important d'apprendre cela parce que si vous êtes travailler sur ubuntu / osx ou toute distro Linux chances sont que vous allez rencontrer à nouveau.

maintenant, pour que votre permission ressemble à ceci, vous devez taper

sudo chmod 700 ~/.ssh

7 en binaire is 111 qui signifie lire 1 écrire 1 et exécuter 1, vous pouvez décoder 6 par une logique similaire signifie seulement des permissions de lecture-écriture

vous avez donné à votre utilisateur les permissions de lecture, d'écriture et d'exécution. Assurez-vous que vos autorisations de fichier ressemble à 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 ont donné ici la permission de lire-écrire à votre Utilisateur ici pour tous les dossiers. Vous pouvez le voir en tapant ls -l ~/.ssh/

Ce problème se produit parce que le ssh est un programme tente d'écrire dans un fichier appelé known_hosts dans son dossier. En écrivant s'il sait qu'il n'a pas suffisamment de permissions, il n'écrira pas dans ce fichier et par conséquent échouera. C'est ce que j'ai compris de la question, des gens mieux informés peuvent y apporter plus de lumière. Espérons que cela aide

3
répondu Saras Arya 2016-11-28 06:57:38

cela m'est arrivé simplement à cause de permissions brisées. Mon utilisateur n'avait pas accès en lecture ou en écriture à ce fichier. Fixation des autorisations résolu le problème

2
répondu Andrea Gherardi 2016-02-08 20:18:42

j'ai généré à nouveau la touche "ssh" et ajouté à mon compte git. Cela a fonctionné pour moi.

Veuillez trouver les commandes suivantes pour générer la clé ssh":

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

-> Cela crée une nouvelle clé ssh en utilisant l'e-mail comme une étiquette.

Generating public/private rsa key pair.

-> Lorsque vous êtes invité à Entrer un fichier dans lequel enregistrer la clé," appuyez sur Entrée. Ceci accepte l'emplacement du fichier par défaut.

Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]

- > au demande, tapez une phrase de passe sécurisée. Pour plus d'informations, voir "Travailler avec la clé SSH de phrases de passe"

Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]

-> Votre clé est générée, pour copier la clé:

$ sudo cat /root/.ssh/id_rsa-pub

j'Espère que ça fonctionnera!

1
répondu SH' 2017-07-25 08:51:50

Cette commande a fonctionné pour moi,

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

comme mentionné par @kenorb.

l'erreur était due à des permissions cassées, pour l'utilisateur courant.

1
répondu Ganesh prasad 2017-09-19 08:02:10