Ich verwende bereits seit einiger Zeit die Authentifizierung mit öffentlichen Schlüsseln auf meinen Servern, es treten jedoch Probleme auf einem neuen "Client" auf, der versucht, eine Verbindung zu Github herzustellen . Ich habe viele Threads gelesen, um zu überprüfen, ob meine Berechtigungen korrekt eingerichtet sind, und habe einen neuen Schlüssel für Github generiert. Das Problem ist, dass ssh nach meiner Passphrase fragt, obwohl ich keine Passphrase festgelegt habe. Ich habe den Schlüssel sogar neu erstellt, um 100% sicher zu sein, dass ich keine Passphrase eingegeben habe.
ssh -vvv gibt die folgende verwandte Ausgabe aus:
debug1: Offering public key: /home/me/.ssh/github.pub
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Remote: Forced command: gerve mygithubusername c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug3: sign_and_send_pubkey
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/me/.ssh/github.pub':
Ich habe gesucht, um herauszufinden, warum PEM_read_PrivateKey fehlgeschlagen ist, aber ich kann keine Lösung finden.
Ich benutze keinen Agenten oder irgendetwas. Ich konfiguriere meine ~ / .ssh / config-Datei wie folgt:
Host github
Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github.pub
Danke im Voraus.
quelle
Antworten:
Wenn Sie die
IdentityFile
Option in Ihrem verwenden, zeigen~/.ssh/config
Sie auf den privaten, nicht auf den öffentlichen Schlüssel.Von
man ssh_config
:Ihr
~/.ssh/config
Eintrag sollte also so aussehen:quelle
Wir hatten dieses Problem und es war ein Fehler beim Ausschneiden und Einfügen. Am
%
Ende der Schlüsseldatei wurde ein einzelnes Symbol hinzugefügt (die letzte Zeile war also-----END RSA PRIVATE KEY-----%
). Es gab keine Fehler- oder Debug-Informationen oder irgendetwas anderes, das darauf hindeutet, dass der Schlüssel die falsche Länge hat oder falsch formatiert ist, aber ssh hat nach einer Passphrase gefragt.quelle
In meinem Fall war das Problem, dass mein SSH-Client keine ED25519-Schlüssel unterstützt. Die Lösung besteht darin, einen RSA-Schlüssel zu erstellen und stattdessen zu verwenden.
Dieses Problem tritt bei OpenSSH <6.5 (Ausführen
ssh -V
) und PuTTY <0.68 auf .Dies ist in der folgenden Ausgabe von zu sehen
ssh -vvv
:Der erste Block beschreibt, was der Client unterstützt, und der zweite, was der Server unterstützt . Wie Sie sehen, gibt es in der oberen Hälfte keine Erwähnung von 'curve25519', was darauf hinweist, dass der Client dies nicht unterstützt.
quelle
In meinem Team ist dies kein Problem vor Ort. Der SSH-Schlüssel und / oder der Zugriff des Benutzers wurde auf dem Server, mit dem die Verbindung hergestellt wird, nicht richtig konfiguriert (in unserem Fall eine Hosting-Plattform). Aus irgendeinem Grund wird eine Aufforderung zur Eingabe eines nicht vorhandenen SSH-Schlüssels ausgelöst.
quelle