it-swarm.com.de

Wie kann man das Dialogfeld "ssh hinzufügen" manuell auslösen?

Wenn Sie ssh-add in der Befehlszeile ausführen, werden die ssh-Schlüssel auf meinem System nicht mehr ordnungsgemäß entsperrt (Ubuntu 11.10 mit Unity). Selbst nachdem ich ssh-add ausgeführt habe, wird beim Senden von ssh an einen Server ein Dialogfeld angezeigt, in dem ich nach meiner Passphrase für den ssh-Schlüssel gefragt werde. Danach funktionieren die Dinge wie erwartet.

ssh-agent läuft. Wenn ich mich zum ersten Mal anmelde:

$ ps -ef | grep ssh-agent
mish      1853  1818  0 18:55 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/gnome-session --session=ubuntu

Wie kann ich den SSH-Schlüssel ordnungsgemäß entsperren, ohne auf einen Server zugreifen zu müssen? (Manuelles Auslösen des SSH-Schlüsseldialogfensters wäre als Lösung in Ordnung, aber ich weiß nicht, wie das geht.).

Mein Anwendungsfall ist, dass ich tmuxinator verwende und mehrere ssh-Verbindungen einrichten möchte. Also möchte ich den SSH-Schlüssel entsperren. Andernfalls werden alle SSH-Schlüsseldialogfelder angezeigt, und ich muss meine Passphrase mehrmals eingeben. Oder ich kann irgendwo ssh machen, bevor ich tmuxinator starte, aber die Verbindung ist hier langsam, so dass es nur zu mehr Reibung kommt. Ich möchte also den ssh-Schlüssel entsperren, bevor ich tmuxinator starte, ohne zuerst irgendwo ssh zu müssen.

Bearbeiten

Ich habe gerade versucht, mich abzumelden und wieder anzumelden. Dann habe ich gemacht:

$ env | grep -i ssh
SSH_AGENT_PID=8693
SSH_AUTH_SOCK=/tmp/keyring-Ho4cfE/ssh
$ ssh-add -D
All identities removed.
$ ssh-add -l
1024 b8:12:34:56[...]:19 [email protected] (DSA)
$ ssh-add
Enter passphrase for /home/name/.ssh/id_dsa: 
Identity added: /home/name/.ssh/id_dsa (/home/mish/.ssh/id_dsa)
$ ssh-add -l
1024 b8:12:34:56[...]:19 /home/name/.ssh/id_dsa (DSA)
1024 b8:12:34:56[...]:19 [email protected] (DSA)
0 [email protected]:~$ ssh server

An diesem Punkt werde ich erneut vom GUI-Dialogfeld nach meiner Passphrase gefragt. Frustrierend ...

Es ist auch interessant, dass nach "Alle Identitäten entfernt" ssh-add -l immer noch eine Identität anzeigt. Das verwirrt mich. Und es scheint nur ein SSH-Agent zu laufen.

Bearbeiten 2:

Ich habe einen Fehler im Launchpad gefunden: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/841672

Bei dieser Frage ging es jedoch darum, eine Problemumgehung zu finden, anstatt zu fragen, warum sie nicht funktioniert hat. Ich hoffe, die Frage kann bestehen.

Edit 3:

Nichts ungewöhnliches in /etc/ssh/ssh_config - ich habe es nicht angerührt. Ich habe einen ~/.ssh/config, aber das sind nur Ports und Benutzernamen.

Ich habe beobachtet, welche Prozesse ausgeführt wurden, als das Dialogfeld geöffnet wurde, und es war /usr/lib/gnome-keyring/gnome-keyring-Prompt-3, das von /usr/bin/gnome-keyring-daemon --daemonize --login gestartet wurde. Ich habe versucht, die Eingabeaufforderung von einem Terminal aus zu starten, aber es ist nichts passiert. Also immer noch stecken.

6
Hamish Downer

Keine direkte Antwort auf die obige Frage, sondern eine Lösung für das Kernproblem:

Stoppen Sie den Start von gnome-keyring ssh-agent. Dann funktionieren ssh-agent, ssh-add und ssh wie erwartet. (Oder zumindest so wie ich es erwarte).

Um den Start von gnome-keyring ssh-agent zu stoppen, gehen Sie wie folgt vor:

Sudo mv /etc/xdg/autostart/gnome-keyring-ssh.desktop /etc/xdg/autostart/gnome-keyring-ssh.desktop.disabled
4
Hamish Downer

Bearbeiten

Dadurch wird eine grafische Eingabeaufforderung für mein SSH-Kennwort gestartet, die sich jedoch von der unterscheidet, mit der SSH tatsächlich den SSH-Schlüssel verwenden kann. Selbst wenn ich das getan habe, erscheint immer noch eine GUI-Eingabeaufforderung, in der ich nach meiner Passphrase für den SSH-Schlüssel frage: /

Weitere Informationen finden Sie unter Bearbeiten 3 in der obigen Frage.

Original

Ich habe einen Weg gefunden, es am Ende auszulösen. Ich habe ~/bin/gssh-add erstellt und Folgendes darin eingefügt:

SSH_ASK_PASS=/usr/bin/ssh-askpass ssh-add

Ich mache es dann ausführbar:

chmod +x ~/bin/gssh-add

Und dann starte ich es mit Alt + F2. Das löst das Gnome-Dialogfeld aus.

Beachten Sie, dass beim Ausführen von gssh-add vom Terminal aus das Dialogfeld "Gnome" nicht ausgelöst wird. Lesen Sie den Abschnitt ENVIRONMENT auf der Manpage ssh-add , um zu erfahren, warum.

1
Hamish Downer

Oder ich kann irgendwo ssh machen, bevor ich tmuxinator starte, aber die Verbindung ist hier langsam, so dass es nur zu mehr Reibung kommt.

Vergiss nicht, dass dein 'irgendwo' nicht entfernt sein muss:

ssh localhost

So mache ich es normalerweise.

(Dann gebe ich ^D an der neuen Shell-Eingabeaufforderung ein, um es wegzuwerfen und zu meiner alten zurückzukehren. Wenn Ihnen die zusätzlichen Tastenanschläge nichts ausmachen, ist ein Befehl wie ssh localhost true eine ordentlichere Alternative.)

Dies funktioniert natürlich nur auf Systemen, die SSH-Schlüssel anfordern (z. B. nach der Verwendung von ssh-copy-id), aber Ihrer Frage nach haben Sie das wahrscheinlich bereits.

0
Paul Whittaker