7 votos

¿SSH-askpass en Mac OS 10.9/Mavericks rotos?

En Mac OS 10.7 y 10.8 (equipos independientes) he estado usando ssh-askpass script que me permita verificar el uso de claves SSH:

https://github.com/TimZehta/mac-ssh-confirm

Sin embargo, esto no parece funcionar en Mavericks/10.9?

Llanura de claves SSH funciona bien:

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

Pero con -c, ya no funciona..

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 es propiedad de root y tiene +x. Aún no se ejecutan parece (agregado simple "toque un archivo de registro" de la línea, nunca se llama).

Todas las ideas o sugerencias sobre cómo depurar aún más?

Gracias

6voto

FabienAndre Puntos 111

Problema resuelto! En caso de duda, leer la fuente...

ssh-agent no llamada ssh-askpass a menos que la PANTALLA env se establece la variable. Lo más probable es que ha estado trabajando en las instalaciones anteriores, ya que he tenido X11 instalado. No en este cuadro (todavía).

Solución:

El parche de ssh-agent LaunchAgents archivo:

--- org.openbsd.ssh-agent.plist.orig    2014-05-22 09:55:53.000000000 +0200
+++ /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist    2014-05-22 09:56:31.000000000 +0200
@@ -9,6 +9,11 @@
        <string>/usr/bin/ssh-agent</string>
        <string>-l</string>
    </array>
+   <key>EnvironmentVariables</key>
+   <dict>
+       <key>DISPLAY</key>
+       <string>:0</string>
+   </dict>
    <key>ServiceIPC</key>
    <true/>
    <key>Sockets</key>

A continuación, reinicie el equipo.

O volver a cargar por la fuerza, sin embargo SSH_AUTH_SOCK no será válido en todas las nuevas sesiones de terminal:

launchctl unload /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist                        
launchctl load /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
export SSH_AUTH_SOCK=$(launchctl getenv SSH_AUTH_SOCK)                 
ssh-add -c ....

Problema resuelto!

Nota: el ssh-agent plist archivo es probable que se sobrescribe en la actualización... Podría ser más limpio maneras de asegurar que la PANTALLA está configurada.

0voto

Quinn Comendant Puntos 73

Estoy en 10.9 y @jstrom la solución no funciona para mí. Para mí, el DISPLAY variable fue que ya están establecidos. El problema era una falta ssh-askpass programa de:

[q@haywire/0 ~] ls /usr/libexec/ssh-askpass
ls: /usr/libexec/ssh-askpass: No such file or directory
echo $SSH_ASKPASS
(no output)

Usted puede solucionar este problema mediante el uso de un personalizados ssh-askpass programa, tales como el jcs del (requiere CocoaDialog) o markcarver del.

Prefiero copiar este programa a ~/bin/ssh-askpass. Esto requiere la especificación de esta ubicación en la SSH_ASKPASS variable; agregar esto a tu ~/.bash_profile:

export SSH_ASKPASS=~/bin/ssh-askpass

Usted también puede necesitar para hacer esta variable disponible en launchd contexto:

launchctl setenv SSH_ASKPASS $SSH_ASKPASS

Antes de obras, deberá reiniciar o, al menos, matar y reiniciar el ssh-agent:

killall ssh-agent
ssh-add -c -t 1h

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X