Unter Mac OS 10.7 und 10.8 (separate Computer) habe ich ein ssh-askpass-Skript verwendet, um die Verwendung von SSH-Schlüsseln zu überprüfen:
https://github.com/TimZehta/mac-ssh-confirm
Dies scheint jedoch bei Mavericks / 10.9 nicht zu funktionieren?
Einfache SSH-Schlüssel funktionieren einwandfrei:
box ~$ ssh-add -D
All identities removed.
box ~$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /Users/user/.ssh/id_rsa:
Identity added: /Users/user/.ssh/id_rsa (/Users/user/.ssh/id_rsa)
box ~$ ssh remotehost
remotehost ~$
^D
Aber mit -c funktioniert es nicht mehr ..
box ~$ ssh-add -D
All identities removed.
box ~$ ssh-add -c ~/.ssh/id_rsa
Enter passphrase for /Users/user/.ssh/id_rsa:
Identity added: /Users/user/.ssh/id_rsa (/Users/user/.ssh/id_rsa)
The user must confirm each use of the key
box ~$ ssh remotehost
Agent admitted failure to sign using the key.
Password for user@remotehost:
/ usr / libexec / ssh-askpass gehört root und hat + x. Es wird anscheinend nicht einmal ausgeführt (einfache Zeile "touch a-logfile" hinzugefügt, nie aufgerufen).
Irgendwelche Ideen oder Hinweise zum weiteren Debuggen?
Vielen Dank
Ich bin auf 10.9 und @ jstroms Lösung hat bei mir nicht funktioniert. Für mich wurde die
DISPLAY
Variable bereits gesetzt. Das Problem war ein fehlendesssh-askpass
Programm:Sie können dies beheben, indem Sie ein benutzerdefiniertes
ssh-askpass
Programm wie jcs (erfordert CocoaDialog) oder markcarver verwenden .Ich ziehe es vor, dieses Programm zu kopieren
~/bin/ssh-askpass
. Dies erfordert die Angabe dieser Position in derSSH_ASKPASS
Variablen. füge dies deinem ~ / .bash_profile hinzu:Möglicherweise müssen Sie diese Variable auch im Startkontext verfügbar machen:
Bevor es funktioniert, müssen Sie Folgendes neu starten oder zumindest beenden und neu starten
ssh-agent
:quelle
Zusätzlich zu den verschiedenen Ersetzungen für ssh-askpass habe ich diesen Code in my eingefügt,
~/.bashrc
um sicherzustellen, dass die Startumgebung bei jedem Start einer Shell immer richtig eingestellt ist. Das Einfügen~/.bash_profile
führte nicht zu konsistenten Ergebnissen, und dieser Code wird sehr schnell ausgeführt, sodass das Ausführen bei jedem Start einer Shell kein Problem darstellt.Ich habe
DISPLAY
hier festgelegt, um zu vermeiden, dass es als Schlüssel hinzugefügt werden muss/System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
, und um zu vermeiden, dass Bestandslisten bearbeitet werden müssen. Ich überprüfe, ob die Anzeige bereits eingestellt ist, weil ich sie nicht blind einstellen möchte, wenn sie bereits von etwas anderem eingestellt wurde, z. B. Xquartz.quelle