Ich habe ein Github-Repository, auf das ich von zwei verschiedenen Linux-Computern aus zugreifen möchte.
Bei der ersten Maschine folgte ich den Anweisungen von Github zum Generieren von SSH-Schlüsseln und fügte den resultierenden öffentlichen Schlüssel zu Github hinzu. Dieser Client funktioniert gut.
Für den zweiten Client habe ich die /home/{user}/.ssh/id_rsa
Datei vom ersten Client kopiert . Ich dachte, das wäre alles, was ich tun müsste, aber wenn ich versuche, eine Verbindung herzustellen, erhalte ich die Meldung "Erlaubnis verweigert (publickey)".
Was vermisse ich?
Wenn Ihnen die Erlaubnis von Github verweigert wird, wird möglicherweise nicht die kopierte SSH-Schlüsseldatei abgerufen, sondern die Standardeinstellung des Systems. Eine einfache Möglichkeit, dies zu umgehen, besteht darin, eine
~/.ssh/config
Datei zu erstellen und Folgendes darin abzulegen:Dadurch wird Ihr SSH-Client gezwungen, diesen Schlüssel nur für github.com zu verwenden.
Hoffe das hilft.
quelle
Ich weiß, dass dies alt ist, aber ich dachte, ich möchte darauf hinweisen, dass Sie auch den öffentlichen Schlüssel auf den zweiten Client kopieren müssen
(oder mit ssh-keygen -y -f ~ / .ssh / id_rsa_ ..> ~ / .ssh / id_rsa ... pub neu berechnen)
Von [1]:
Ihr ssh-Client beginnt die Authentifizierung, indem er den öffentlichen Schlüssel (die oben in Fettdruck angegebene Signatur) an den Server sendet. Wenn der öffentliche Schlüssel ein autorisierter Schlüssel ist, sendet der Server eine zufällige Sitzungs-ID an Ihren Client zurück. Ihr Client codiert dann diese Sitzungs-ID mit dem privaten Schlüssel und sendet diesen an den Server zurück. Der Server decodiert diese Sitzungs-ID mithilfe des öffentlichen Schlüssels. Wenn sie mit der ursprünglichen Sitzungs-ID übereinstimmt, wird Ihr Client authentifiziert.
[1] [ http://www.openssh.org/txt/rfc4252.txt[1]
quelle
Dies liegt wahrscheinlich daran, dass Sie die Berechtigung der Datei auf dem zweiten Client nicht kopiert haben.
Aber ein privater Schlüssel ist privat . Der richtige Weg ist, einen neuen privaten Schlüssel auf dem zweiten Client zu erstellen und dann seinen öffentlichen Schlüssel zu Github hinzuzufügen
quelle