SSH-Schlüssel fragt mich nach einer Passphrase?

Ich habe ein öffentliches / privates Schlüsselpaar. Keiner von ihnen hat irgendeine Art von Passphrase mit ihnen verbunden.

Wenn ich versuche, ssh entweder mit dem privaten oder dem öffentlichen Schlüssel zu verwenden(und ich bin mir ziemlich sicher, dass ich nur den öffentlichen Schlüssel verwenden sollte), werde ich nach einer Passphrase gefragt und kann dann natürlich keine Verbindung herstellen.

Hat jemand eine Idee, wie man das umgehen kann? Tippe ich einen Befehl unbestechlich ein? Ich versuche, ssh in einen Server zu integrieren, den ich in meinem ~/eingerichtet habe.ssh/config Datei(korrekt, da dies genau die gleiche setup funktioniert auf einem anderen server) mit dem gespeicherten Schlüssel in ~/.ec2/ - Taste.ppk -

Ich habe auch versucht, puttygen zu verwenden.exe, um einen neuen privaten Schlüssel MIT einer Passphrase zu generieren und dann diesen Schlüssel zu verwenden, und wenn ich die Passphrase eingebe, schlägt sie immer noch fehl.

Author: llaskin, 2010-06-25

10 answers

Zuerst ist es der private Schlüssel, der die Passphrase hat. Dies wird anhand des auf dem Remote-Server gespeicherten öffentlichen Schlüssels überprüft.

Die beste Vermutung ist, dass Sie versuchen, ein putty private key (ppk) Schlüsselformat mit openssh Dies funktioniert nicht.... PuTTYgen hat eine Exportoption für openssh, wenn dies der Fall ist.

ssh-rsa AAAAB3NzaC1y...... etc

Ich gehe auch davon aus, dass auf dem Server, auf den Sie ssh senden möchten, Ihr öffentlicher Schlüssel korrekt in der autorisierten Schlüsseldatei gespeichert ist (in ~/.ssh/authorized_keys allgemein).

Eine andere Vermutung wäre, dass der richtige Schlüssel nicht ausgewählt wird. Einige Dinge, die ich versuchen würde, sind:

Setzen Sie die Schlüsselpassphrase mit ssh-keygen wie folgt zurück...

$ ssh-keygen -f ~/.ec2/key.ppk -p

Dies wird bestätigen, ob Ihr Schlüssel tatsächlich bereits eine Passphrase enthält (oder nicht).

Zweitens würde ich versuchen, eine Verbindung mit einer ausführlichen Ausgabe herzustellen und Ihren öffentlichen Schlüssel explizit anzugeben:

$ ssh host -i ~/.ec2/key.ppk -vvv

Dies gibt Ihnen mehr eine Vorstellung davon, was los ist.

 31
Author: mrverrall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-05-19 12:26:11

Sie könnten ssh-agent ausführen. Siehe hier für eine Diskussion.

Die kurze Version, die für mich (in bash) funktionierte:

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-rnRLi11880/agent.11880; export SSH_AUTH_SOCK;
SSH_AGENT_PID=11881; export SSH_AGENT_PID;
echo Agent pid 11881;

Ich nahm die 3 Zeilen, die es widerhallt, und führte sie aus. Eine andere Möglichkeit, dies zu tun, ist die Ausgabe von-s:

$ eval `ssh-agent -s`

Dann habe ich meine Anmeldeinformationen hinzugefügt:

$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/me/.ssh/id_rsa: 
Identity added: /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa)

Jetzt liefert der Agent die Anmeldeinformationen, anstatt dass ich meine Passphrase eingeben muss.

Ich glaube, ssh-Agent verschwindet, wenn die Shell dies tut, daher sollte dies skriptiert werden beim Start für maximalen Komfort. Der Link , den ich geteilt habe, beschreibt auch Skripting.

 19
Author: dfrankow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-05-11 15:57:53

Überprüfen Sie, ob der private Schlüssel id_rsa am Ende keine zusätzlichen Zeilenumbrüche hat, in einigen Fällen werden zusätzliche Zeilenumbrüche ssh-keygen veranlassen, nach der Passphrase zu fragen, versuchen Sie dies:

sed  '/^$/d' /path/to/key > id_rsa

Test:

ssh-keygen -yf id_rsa
 5
Author: nbari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-08-20 21:22:23

Wenn Sie Ihren öffentlichen Schlüssel einrichten, richten Sie ihn wahrscheinlich (vielleicht versehentlich) mit einer Passphrase ein.

Sie müssen wahrscheinlich neu anfangen - ich habe puttygen nicht verwendet, aber Sie können den öffentlichen Schlüssel in Ihrem löschen (oder umbenennen).verwenden Sie das ssh-Verzeichnis ssh-keygen, um ein neues zu generieren (wobei Sie sicher sind, dass Sie keine Passphrase angeben), und geben Sie dann den public_key für die Datei authorized_keys auf dem Server frei, mit dem Sie eine Verbindung herstellen möchten.

Möglicherweise müssen Sie auch Ihren alten Passphrase-Key aus dem datei mit autorisierten Schlüsseln auf dem Server, mit dem Sie eine Verbindung herstellen.

 4
Author: JohnMcG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-06-25 13:29:56

Eine Sache zu überprüfen, ob Ihre sshd_config Datei StrictModes=yes, dann das $ HOME Verzeichnis oder $HOME/.ssh-Verzeichnis darf nicht Welt beschreibbar sein, um Gruppe oder andere. Andernfalls schlägt die Authentifizierung fehl, egal was passiert.

 3
Author: TD1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-06-28 05:30:04

Ich bin neulich auf dieses Problem gestoßen. Insbesondere habe ich versucht, einen privaten AWS-Schlüssel von einem Computer auf einen anderen zu kopieren/einzufügen.

Ich habe die schlechte Angewohnheit, entweder das erste oder das letzte Zeichen zu verpassen. Es stellt sich heraus, dass, wenn Sie nicht jeden Bindestrich am Ende Ihres privaten Schlüssels greifen–obwohl es nichts mit dem Schlüsseltext selbst zu tun hat–Sie nach einer Passphrase für den privaten Schlüssel gefragt werden, bis Sie jedes Zeichen aus dem Schlüssel hinzufügen, von dem Sie kopiert haben (in meinem Fall bedeutete dies das Hinzufügen eines a einzelner Bindestrich bis zum Ende des Schlüssels.)

Ich nehme an, dies bedeutet, dass es am besten ist, die Textdatei über das Kabel zu SSH, anstatt zu versuchen, zwischen Terminalfenstern zu kopieren und einzufügen.

 1
Author: Professor Tom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-02-07 22:20:07

Ich habe den Fehler gemacht, versehentlich mein ~ / zu überschreiben.ssh/id_rsa-Datei mit meiner ~/.ssh/id_rsa.Pub. Wenn Sie dies tun, wird ssh nach einer Passphrase fragen.

 1
Author: Red Cricket,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-02-15 04:28:39

Unter OSX konnte ich einfach ausführen:

$ ssh-add ~/.ssh/id_rsa Enter passphrase for /Users/me/.ssh/id_rsa: `Identity added: /Users/mikekilmer/.ssh/id_rsa (/Users/mikekilmer/.ssh/id_rsa)

Das Kennwort wurde von der Schlüsselbundzugriffsanwendung gespeichert, die sich im Ordner Anwendungen > Dienstprogramme befindet. Ich habe gerade id_ in das Suchfeld eingegeben.

 1
Author: MikeiLL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-06-30 00:05:29

Versuchen Sie, die Protokolldateien auf dem Server anzuzeigen. Siehe /var/log /authlog (zB/var/log /authlog für OpenSSH, obwohl ich gesehen habe, dass einige Betriebssysteme Portable OpenSSH verwenden und/var/log / auth verwenden.log) und überprüfen Sie das Ende dieser Datei.

Die häufigsten Ursachen, die ich gesehen habe, sind falsche Berechtigungen( wie in der Antwort von TD1), obwohl andere Probleme darin bestehen können, dass der öffentliche Schlüssel (auf dem Server gespeichert) nicht in der richtigen Datei ist oder dieser Schlüssel auskommentiert wird oder falsch geschrieben ist Benutzernamen.

Es kann auch hilfreich sein (zur Fehlerbehebung), dem Konto vorübergehend eine Passphrase zu geben, nur um zu überprüfen, ob das Konto erfolgreich angemeldet werden kann, wenn Sie dies tun.

Wenn das Anzeigen der Protokolldatei nicht schnell zu einer Auflösung führt, schlage ich vor, eine neue Frage zu posten (da dies eine großartige verallgemeinerte Frage ist), die die spezifischen Details aus der Protokolldatei enthält, damit spezifischere Anweisungen bereitgestellt werden können.

 0
Author: TOOGAM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-06-28 00:37:36

In meinem Team ist es in diesem Fall kein Problem mit etwas Lokalem. Der SSH-Schlüssel und/oder-Zugriff des Benutzers wurde auf dem Server, mit dem er eine Verbindung herstellt, nicht korrekt konfiguriert (in unserem Fall eine Hosting-Plattform). Aus irgendeinem Grund löst dies eine Eingabeaufforderung für einen nicht vorhandenen SSH-Schlüssel aus.

 0
Author: ognockocaten,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-06-12 20:31:15