Ich benutze Awesome Window Manager
Wie kann ich dauerhaft private Schlüssel mit Passwort hinzufügen?
Inspiriert von der Antwort hier habe ich die privaten Schlüssel in ~ / .ssh / config hinzugefügt
Inhalt von ~ / .ssh / config:
IdentityFile 'private key full path'
Berechtigungen von ~ / .ssh / config: 0700
Aber bei mir funktioniert es nicht.
Wenn ich den Schlüssel in jeder Sitzung manuell hinzufüge, funktioniert dies, aber ich suche nach einer eleganteren Methode (nicht in .bashrc).
EDIT :
- Verwenden der klassischen Gnome- Version (ohne Effekte).
Nach dem Hinzufügen des SSH-Schlüssels ssh-copy-if
zum Remote-Host wird beim Anmelden im Terminal (GNOME Terminal 3.0.1) die folgende Eingabeaufforderung angezeigt :
ssh -i .ssh/Password-Protected-Key user@host
Enter passphrase for key '.ssh/Password-Protected-Key':
- Verwenden von Awesome Window Manager v3.4.10. Ich hatte bereits
gnome-keyring-dameon
so, dass ich die andere PID getötet undgnome-keyring-daemon --start | grep SOCK
die (grep) Ausgabe ausgeführt habe (ich habe sie auch in .profile hinzugefügt):
SSH_AUTH_SOCK=/tmp/keyring-2LXXXX/ssh
Ich habe genau die gleichen Schritte ausgeführt und habe auch keinen GUI-Dialog zum Hinzufügen von SSH.
EDIT 2 :
Ich habe einen neuen kennwortgeschützten Schlüssel aus der virtuellen Ubuntu 11.10-Maschine auf Unity erstellt und kann immer noch keine Kennwortabfrage erhalten.
EDIT 3 : Es scheint, dass dies nicht in Awesome Window Manager funktionieren kann :( und möglicherweise andere ..
quelle
Antworten:
Wenn Sie Unity oder einen Sitzungsmanager verwenden, der gnome-keyring-daemon startet, können Sie einfach Seahorse (Passwörter und Schlüssel) verwenden, um einen Schlüssel zu erstellen, zu definieren, wofür er bestimmt ist, eine Passphrase festzulegen und seinen öffentlichen Schlüssel an den zu verteilen Computer, den Sie mit ssh verwenden werden. Es sind keine Terminalbefehle erforderlich.
Sie erstellen das Passwort durch:
Wählen Sie Datei-> Neu und wählen Sie Secure Shell Key. Drücken Sie Weiter.
Geben Sie einen beschreibenden Namen ein und wählen Sie
Create and set up
.Sie werden aufgefordert, zweimal eine Schlüsselphrase einzugeben (das zweite Mal, um zu überprüfen, ob Sie sie beim ersten Mal nicht falsch eingegeben haben.
Geben Sie den Computer ein, für den der öffentliche Schlüssel verwendet werden soll, und den Benutzernamen auf dem Computer, für den Sie den Schlüssel verwenden möchten. Der öffentliche Schlüssel wird auf diesen anderen Computer kopiert und fordert Sie bei Bedarf zur Eingabe Ihres Kennworts auf diesem Computer auf.
Jetzt wird auf der
My Personal Keys
Registerkarte der Schlüssel angezeigt.Angenommen, gnome-keyring-daemon wurde ordnungsgemäß gestartet, als Sie sich bei Lightdm angemeldet haben, und erneut von Ihrem Sitzungsmanager, wenn Sie den Schlüssel zum ersten Mal mit ssh verwenden, werden Sie zur Eingabe der Schlüsselphrase aufgefordert. In diesem Dialogfeld können Sie
Details
die Schlüsselphrase angeben, das Steuerelement auswählen und verlangen, dass der Schlüsselring bei jeder Anmeldung entsperrt wird - automatisch wird dieser Schlüssel bereitgestellt. Drücken SieOKSie werden möglicherweise nicht auf diese Weise aufgefordert, wenn ein anderer Schlüssel zum Anmelden am Remotecomputer verfügbar ist.
Nachdem dies geschehen ist, wird auf der ersten Registerkarte von Seahorse
Passwords
ein "Kennworteintrag entsperren" für den Schlüsselnamen aufgeführt. Klicken Sie auf das Dreieck vor " Passwörter: Login", um es zu sehen.quelle
Das Erstellen eines kennwortgeschützten SSH-Schlüssels bleibt über Sitzungen und Neustarts hinweg bestehen
Dies ist wahrscheinlich das, was Sie möchten: Wenn Sie die Schlüsselpassphrase einmal eingeben, ist sie für immer verfügbar, wenn Sie angemeldet sind. Sie funktioniert für die meisten Benutzer, die die Unity- oder Gnome-Desktops verwenden.
Wenn Sie nach dem Hinzufügen des öffentlichen Schlüssels zum Remoteserver eine Verbindung herstellen, wird das Dialogfeld ssh-add der GUI angezeigt:
Erweitern Sie die "Details", indem Sie auf das Dreieck klicken. Daraufhin wird Folgendes angezeigt. Die Standardeinstellung ist "Schlüsselring sperren, wenn ich mich abmelde". Hierfür müssen Sie das Kennwort einmal pro Sitzung eingeben:
Ändern Sie es in Automatisch entsperren ... wenn ich angemeldet bin , was bedeutet, dass es funktioniert, wenn Sie sich bei Ihrer Sitzung angemeldet haben - es wird durch Ihr Benutzerkennwort "gesteuert". Es bleibt über Neustarts hinweg bestehen.
Geben Sie die Schlüsselpassphrase einmal ein und fertig - der Schlüssel wird über die erste erfolgreiche Anmeldung bei Ihrer Desktop-Umgebung authentifiziert.
Wenn Sie AwesomeWM verwenden
Getestet mit einer Neuinstallation von AwesomeWM in einer neuen Benutzer-ID
Standardmäßig verwendet AwesomeWM
ssh-agent
:Damit die oben genannten Schritte funktionieren, müssen Sie
gnome-keyring-daemon
als SSH-Authentifizierungsdämon und nicht als ssh-agent verwenden. Wenn Sie sich mit lightdm anmelden, wird PAM gestartet,gnome-keyring-daemon
das versucht, einen Anmeldeschlüssel mit Ihrem Entsperrkennwort zu entsperren. Sie müssen jedoch Ihre Konfiguration hinzufügen, damit er weiterhin ausgeführt und verwendet wird.Fügen Sie am Ende von Folgendes Folgendes hinzu
~/.xprofile
:Die Befehle in der
~/.xprofile
Datei werden von xsession ausgeführt, bevor der fantastische Fenstermanagergnome-keyring-daemon --login
gestartet wird, und binden ihn über die oben genannten Umgebungsvariablen an den von PAM gestarteten Prozess.ssh user@host
, sollten Sie die oben genannten Popups erhalten. Verwenden Sie diese, um Ihre privaten Schlüssel in ~ / .ssh / zu dekodieren und Ihre privaten Schlüssel im Anmeldeschlüsselring des Gnome-Schlüsselbunds zu speichern.Die allgemeine Lösung für jede Fenstermanager- / Desktopumgebung
ist
gnome-keyring-daemon
anstelle von zu verwendenssh-agent
. Dazu müssen Sie ausgeführtgnome-keyring-daemon
und initialisiert werden und dies entweder nach demssh-agent
Start oder gar nicht tunssh-agent
.ssh
(tatsächlich ssh-add) entscheidet anhand des Werts derSSH_AUTH_SOCK
Umgebungsvariablen, welcher Authentifizierungsagent aufgerufen werden soll, der durch Eingabe überprüft werden kannexport | grep SOCK
Dies ist das Formular
SSH_AUTH_SOCK=/tmp/ssh-MMFyVlI22130/agent.22130
für ssh-agent (NICHT das, was Sie möchten, um Ihren Schlüssel speichern zu können)aber von der Form
SSH_AUTH_SOCK="/tmp/keyring-mEQB5g/ssh"
für gnome-keyring-daemon (die Sie wollen)Überprüfen Sie also den Wert und überprüfen Sie,
ps aux | grep keyring
ob der Gnome-Schlüsselring-Daemon ausgeführt wird. Wenn ja, initialisieren Sie ihn mit den Ergebnissen vongnome-keyring-daemon --start
Sie können dann die zugehörigen gespeicherten Identitäten in der Konsole überprüfen, indem Sie Folgendes eingeben.
ssh-add -l
Wenn "no agent" angezeigt wird, haben Sie beim Konfigurieren des gnome-keyring-daemon einen Fehler gemacht.quelle
~/.ssh
, ist keine Verwendung erforderlich.ssh-add
Der Dialog wird bei der ersten Verwendung angezeigt . Beachten Sie, dass dies nur in Unity / Gnome funktioniert. Ich habe im Chat festgestellt , dass das OP AwesomeWM verwendet , wo dies nicht funktioniert.Die Lösung für Ihr Problem ist die Verwendung des SSH-Agenten. Sie müssen das Passwort Ihres Schlüssels nur einmal entsperren, danach wird es vom Agenten gespeichert und automatisch verwendet
ssh-keygen -t dsa
ssh-copy-id
hierfür verwenden).ssh-add
Option aus, bevor Sie sich beim Remote-System anmelden. Hier werden Sie nach Ihrer Passphrase gefragt und diese gespeichertssh-agent ist im .net gut beschrieben, zum Beispiel hier:
Ein weiterer Vorteil von ssh-agent besteht darin, dass Sie, wenn Sie sich mit dem Remote-System anmelden,
ssh -A [email protected]
ssh vom Computer domain.name auf einen dritten Computer mit Ihrem öffentlichen Schlüssel übertragen können, ohne dass Sie Ihren privaten Schlüssel auf den Computer domain.name kopieren müssen (und dies niemals sieht Ihren privaten Schlüssel, nur die einmalige Herausforderung / Antwort).quelle
Sie können verwenden
ssh-add 'filename or fullpath'
Sie werden nach der Passphrase gefragt, wenn Ihre Taste eine hat
dann können Sie sich ohne Passwort verbinden
quelle
Wenn Sie mit privaten Schlüsseln arbeiten möchten, gehen Sie wie folgt vor:
Dann:
kopiere
.ssh/id_rsa.pub
zum Ziel der Maschine in.ssh/authorized_keys
via scpAlles erledigt.
Stellen Sie ohne Kennwort eine Verbindung zum Remote-Computer her:
Und wir haben keine Passwortabfrage.
quelle