2013-07-16 9 views
33

Mac OS X Lion 10.7.Fehler beim Hinzufügen des Hosts zur Liste der bekannten Hosts

In der Bemühung um seltsame Umwelt Zeug (Homebrew war nicht installiert wget, und ich hatte alle Arten von seltsamen Blöcke und Fehler), ich deinstalliert ZSCHRC und Homebrew und eine Menge anderer Sachen, dann installiert Fischschale.

Nun, wenn ich zu schieben versuchen,/ziehen zu/von Github, ich diesen Fehler.

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). 

Also habe ich versucht, die Berechtigungen meiner ~ überprüfen/ssh-Ordner, und bekam diese, die sieht mir fein:

-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 

Alles, was in known_hosts ist eine pem-Datei habe ich (mit der „Authentizität ...“ prompt auch) auf eine Amazon EC2-Instanz, obwohl ich id_rsa für ssh'ing versucht, das Kopieren und id_rsa.pub dort, wenn die Dinge verzweifelt wurden.

Irgendeine Idee was ist los? Ich würde das gerne reparieren, damit ich nicht all die vielen Male, die ich drücke/ziehe, dazu aufgefordert werde.

EDIT Ich folgte these instructions erfolgreich eine Weile her, so dass ich meinen SSH-Schlüssel auf Github habe, und sie sind anerkannt, so dass, wenn ich ssh -T [email protected] laufen, ich

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

Es scheint ausschließlich meine lokalen Computer zu sein, die mit meiner ssh Situation unzufrieden ist.

Antwort

14

Sollte nicht known_hosts eine flache Datei sein, kein Verzeichnis?

Wenn das nicht das Problem ist, könnte this page auf Github eine Hilfe sein. Versuchen Sie, SSH mit dem Flag -v oder -vv zu verwenden, um ausführliche Fehlermeldungen anzuzeigen. Es könnte Ihnen eine bessere Vorstellung davon geben, was fehlschlägt.

+0

Seltsam. Ich glaube, ich muss es in ein Verzeichnis umgewandelt haben, obwohl ich mich nicht erinnern kann, wann. Verschieben/Umbenennen hat alles repariert. Vielen Dank! – Sasha

77

In Ihrem speziellen Fall ist Ihr ein Ordner, Sie müssen ihn also zuerst entfernen.

Für andere Personen, bei denen ähnliche Probleme auftreten, überprüfen Sie bitte die richtige Berechtigung für Ihre ~/ssh/known_hosts, da sie im Besitz eines anderen Benutzers (z. B. root) sein kann. So können Sie versuchen zu laufen:

, um es zu beheben.

+3

Es wird immer noch ein Fehler angezeigt: 'Fehler beim Hinzufügen des Hosts zur Liste der bekannten Hosts (/Users/igorganapolsky/.ssh/known_hosts) .' –

+0

Sollte sich auch eine Gruppe zu $ ​​USER ändern oder' -rw-r-r verlassen - 1 $ USER root'? – Suncatcher

+0

@Suncatcher Group sollte nicht wichtig sein, denke ich, aber Sie können es versuchen. – kenorb

22

für Jungs, auf Ubuntu, wenn Sie diesen Fehler erhalten:

Failed to add the host to the list of known hosts

Dann löschen Sie einfach die known_hosts-Datei und Ihre ssh erneut ausführen. Dadurch wird die Datei known_host mit den entsprechenden Berechtigungen neu erstellt und der Remote-Host, den Sie versuchen, in diese Datei zu gelangen, wird hinzugefügt.

+0

Wie kann ich mein ssh erneut ausführen? – Maviles

+0

arbeitete auch auf OSX. – Pimentoso

10

Ich denke, die OP-Frage wird durch Löschen der ~/.ssh/known_hosts (das war ein Ordner, keine Datei) gelöst. Aber für andere ist, die diese Frage werden, die vielleicht, bemerkte ich, dass einer meiner Server seltsame Berechtigungen hatte (400):

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

Also ich dies, indem Besitzer/Benutzer gelöst PLUS schreiben.

chmod u+w ~/.ssh/known_hosts

So. ~/.ssh/known_hosts muss eine flache Datei sein, und muss von Ihnen gehört werden, und Sie müssen in der Lage sein, zu lesen und zu schreiben.

Sie könnten immer Konkurs von known_hosts deklarieren, löschen Sie es, und weiterhin Dinge wie normal tun, und die Verbindung zu Dingen (Git/ssh) wird eine neue known_hosts, die gut funktionieren sollte regenerieren.

+1

In meinem System (nach einer Wiederherstellung) war die Datei im Besitz von root ... 'chown user.user ~/.ssh/known_hosts' hat das behoben. – Paolo

+0

Lustig. Wie war ich mit dieser ziemlich dummen Frage konfrontiert? 'chmod u + w' hat das Problem behoben. Muss ein fehlerhaftes Sicherheitsskript sein ... – gluk47

2

Es ist mir einfach wegen gebrochener Berechtigungen passiert. Mein Benutzer hatte keinen Lese- oder Schreibzugriff auf diese Datei. Fixing Berechtigungen das Problem behoben

2

Okay, so ideal Berechtigungen so aussehen
Für ssh-Verzeichnis (Sie diese ls -ld ~/.ssh/, indem Sie erhalten können)
drwx------ 2 oroborus oroborus 4096 Nov 28 12:05 /home/oroborus/.ssh/

d bedeutet Verzeichnis, bedeutet rwx der Benutzer oroborus Schreib gelesen hat und Berechtigung ausführen Hier ist oroborus mein Computername, den Sie finden können, indem Sie $ USER wiederholen. Der zweite oroborus ist eigentlich die Gruppe. Sie können mehr darüber lesen, was jedes Feld bedeutet here. Es ist sehr wichtig, dies zu lernen, denn wenn Sie an ubuntu/osx oder an Linux-Distributionen arbeiten, werden Sie wieder darauf stoßen.

Jetzt Ihre Erlaubnis aussehen wie dies zu machen, müssen Sie
sudo chmod 700 ~/.ssh

7 binär Typen 111 ist die 1 Lesemittel Schreib 1 und führen 1, nur 6 durch ähnliche Logikmittel dekodieren kannst Read- Schreibberechtigungen

Sie haben Ihrem Benutzer Lese- und Ausführungsberechtigungen gegeben. Stellen Sie sicher, dass Ihre Dateiberechtigungen so aussehen.

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 

Hier haben Sie Ihrem Benutzer hier Lese- und Schreibrechte für alle Dateien gegeben. Sie können dies sehen, indem Sie ls -l ~/.ssh/ eingeben

Dieses Problem tritt auf, weil ssh ist ein Programm versucht, in eine Datei mit dem Namen known_hosts in seinem Ordner zu schreiben. Beim Schreiben, wenn es weiß, dass es nicht über ausreichende Berechtigungen verfügt, wird es nicht in diese Datei schreiben und daher fehlschlagen. Das ist mein Verständnis für das Thema, mehr sachkundige Menschen können mehr Licht in dieses Thema werfen. Hoffe es hilft

0

Ich generierte den "ssh" Schlüssel wieder und fügte meinem git Konto hinzu. Das hat für mich funktioniert.

finden Sie folgende Befehle, um den "ssh-key" zu generieren:

$ ssh-keygen -t rsa -b 4096 -C "[email protected]"

-> Erzeugt einen neuen SSH-Schlüssel, die angegebenen E-Mail als Label verwendet wird.

Generating public/private rsa key pair.

-> Wenn Sie aufgefordert werden, „eine Datei eingeben, in dem der Schlüssel zu retten“, drücken Sie die Eingabetaste. Dies akzeptiert den Standardspeicherort.

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

-> an der Eingabeaufforderung ein sicheres Passwort eingeben.Weitere Informationen finden Sie "Working with SSH key passphrases"

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

Enter same passphrase again: [Type passphrase again]

-> Ihr Schlüssel erzeugt wird, um den Schlüssel zu kopieren:

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

Hope this funktioniert!

0

Dieser Befehl ist für mich gearbeitet,

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

wie @kenorb erwähnt.

Der Fehler wurde aufgrund von beschädigten Berechtigungen für den aktuellen Benutzer verursacht.