Échec de l'ajout de l'hôte à la liste des savoir hôtes
Mac OSX Lion 10.7.
Dans un effort pour obtenir autour de bizarre environnement trucs (homebrew n'était pas d'installer wget, et j'ai eu toutes sortes d'étranges blocs et des erreurs), je l'ai désinstallé zschrc et homebrew et un tas d'autres trucs, puis installé le poisson shell.
Maintenant, chaque fois que j'essaie de pousser/tirer vers/à partir 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).
J'ai donc essayé de vérifier les autorisations de ma ~./ssh dossier, et a obtenu ce qui semble bien pour 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 known_hosts est un fichier pem j'ai utilisé pour ssh require (aussi avec "l'authenticité..." invite de commandes) à une instance Amazon ec2, si j'ai essayé de copier id_rsa et id_rsa.pub là quand les choses se sont désespérés.
Une idée de ce qui se passe? J'aimerais résoudre ce problème de manière je n'ai pas invité tous les nombreuses fois où je push/pull.
MODIFIER j'ai suivi ces instructions avec succès il y a un moment, j'ai donc mes clés ssh sur Github, et ils sont reconnus, afin que quand je lance ssh -T [email protected], je reçois
Hi sashafklein! You've successfully authenticated, but GitHub does not provide shell access.
Il semble être exclusivement mon local ordinateur qui est malheureux avec mon ssh situation.
Vous devez vous connecter pour publier un commentaire.
Ne devrait pas known_hosts être un fichier plat, pas un répertoire?
Si ce n'est pas le problème, alors cette page sur Github pourraient être d'une aide. Essayez d'utiliser SSH avec l'option -v ou -vv drapeau pour voir verbose messages d'erreur. Il peut vous donner une meilleure idée de ce qui ne fonctionne pas.
Dans votre cas particulier, votre
known_hosts
est un dossier, de sorte que vous besoin de l'enlever en premier.Pour d'autres personnes qui connaissent problème similaire, merci de vérifier le droit l'autorisation de votre
~/ssh/known_hosts
comme il peut être détenue par les différents utilisateurs (par exemple, la racine). De sorte que vous pouvez essayer de courir:pour le fixer.
Failed to add the host to the list of known hosts (/Users/igorganapolsky/.ssh/known_hosts).
-rw-r--r-- 1 $USER root
?known_hosts
fichier n'est pas si secret.Pour les gars sur Ubuntu, si vous obtenez ce message d'erreur:
Puis il suffit de supprimer le
known_hosts
de fichiers et ré-exécutez ssh. Cela permettra de restaurer laknown_host
fichier avec les autorisations appropriées, et ajouter l'hôte distant que vous essayez de ssh dans le fichier.Je pense que l'OP question est résolue par la suppression de la ~/.ssh/known_hosts (qui est un dossier, pas un fichier). Mais pour d'autres qui pourraient avoir ce problème, j'ai remarqué que l'un de mes serveurs a bizarre autorisations (400):
-r--------. 1 user user 396 Jan 7 11:12 /home/user/.ssh/known_hosts
Donc j'ai résolu ce problème en ajoutant le propriétaire/utilisateur PLUS écrire.
chmod u+w ~/.ssh/known_hosts
Ainsi. ~/.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.
Vous pouvez toujours déclarer known_hosts de faillite, de le supprimer, et de continuer à faire des choses que la normale, et la connexion à des choses (git /ssh) va régénérer un nouveau known_hosts qui devrait fonctionner parfaitement.
chown user.user ~/.ssh/known_hosts
fixe qui.chmod u+w
résolu le problème. Certaines de sécurité défectueux script...Ok, donc idéal autorisations ressembler à ceci
Pour ssh répertoire (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 lire écrire et d'autorisation d'exécution. Ici oroborus est mon nom de l'ordinateur, vous pouvez trouver le vôtre en se faisant l'écho $UTILISATEUR. La deuxième oroborus est en fait le groupe. Vous pouvez lire plus sur ce que chaque champ moyen ici. Il est très important de savoir cela parce que si vous travaillez sur ubuntu/osx ou n'importe quelle distribution Linux vous aurez de bonnes chances de le rencontrer de nouveau.
Maintenant de faire votre permission ressembler à cela, vous devez taper
sudo chmod 700 ~/.ssh
7 en binaire est 111, ce qui signifie lire 1 écrire 1 et exécuter 1, vous pouvez décoder 6 par la même logique ne signifie que les autorisations de lecture /écriture
Vous avez donné votre utilisateur en lecture et en écriture et d'exécution des autorisations. Assurez-vous que vos autorisations de fichier ressemble à ceci.
Vous avez donné ici en lecture-écriture à l'utilisateur de votre ici pour tous les fichiers.
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. Lors de l'écriture si il sait qu'il n'a pas d'autorisations suffisantes, il ne sera pas écrire dans ce fichier, et donc échouent. Ceci est ma compréhension de la question, de plus en plus de personnes bien informées peut jeter plus de lumière dans cette.
Espérons que cela aide
Cette commande a fonctionné pour moi,
sudo chown -v $USER ~/.ssh/known_hosts
comme mentionné par @kenorb.
L'erreur a été à venir avec les débris des autorisations, pour l'utilisateur actuel.
C'est la solution que j'ai besoin.
Il m'est arrivé tout simplement parce que de cassé autorisations. Mon utilisateur n'a pas de lire, ni écrire, l'accès à ce fichier. Fixation des autorisations résolu le problème
J'ai généré la "ssh" à nouveau sur la touche et a ajouté à mon git compte. Cela a fonctionné pour moi.
Veuillez trouver les commandes suivantes pour générer la clé ssh":
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
-> 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. Cette accepte l'emplacement de fichier par défaut.
Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]
-> À l'invite de commandes, tapez une phrase de passe sécurisé. 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
Espère que cela fonctionne!
Cette commande a fonctionné pour moi,
pour moi, je viens de le faire :
alors :
je viens de ssh sur l'hôte cible et tout sera ok.
Cela seulement si vous ne savez pas, ce que l'autorisation et le propriétaire par défaut de "known_hosts" fichier.
Vérifier les permissions du fichier, s'il est bon de vérifier les répertoires parents
J'ai dû corriger
/home/sravindr/.ssh autorisations qui a travaillé pour moi
Aller à .ssh répertoire.
Supprimer la known_hosts fichier.
Re-pousser votre Git changements.