Acabo de actualizar de Snow Leopard a Lion, y mis trabajos cron que usan ssh han dejado de funcionar. Parece que ssh-agent ya no funciona como se esperaba.
Aquí hay una versión bowdlerizada de mi script llamado desde cron que funcionó muy bien con Snow Leopard:
#!/bin/bash
whoami # just to verify I'm running as myself, not root
ssh-agent # just to see what it outputs
eval `ssh-agent`
ssh -vvv REMOTESERVER ls
Cuando se ejecuta desde el símbolo del sistema, este script funciona como se esperaba.
Cuando se ejecuta desde cron, no funciona. La salida del agente ssh parece normal:
SSH_AUTH_SOCK=/tmp/ssh-QRxPUMRxbu/agent.17147; export SSH_AUTH_SOCK;
SSH_AGENT_PID=17148; export SSH_AGENT_PID;
echo Agent pid 17148;
Agent pid 17150
Pero el ssh -vvv
resultado muestra que falla justo cuando se debe leer la clave privada:
debug1: Server accepts key: pkalg ssh-dss blen 818
debug2: input_userauth_pk_ok: fp ...
debug3: sign_and_send_pubkey: DSA ...
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug1: read_passphrase: can't open /dev/tty: Device not configured
debug2: no passphrase given, try next key
En otras palabras, espera que escriba la frase de contraseña para ~/.ssh/id_dsa
, que por supuesto no funciona en trabajos cron.
Todo esto funcionó en Snow Leopard.
Tenga en cuenta que tengo la configuración de Acceso a Llaves de manera que ssh
, ssh-agent
y ssh-add
se les permite leer mi frase de contraseña para mi .ssh/id_dsa
archivo - como resultado que puedo SSH en un terminal sin tener que entrar en mi contraseña.
¿Es este problema el que necesito ejecutar ssh-add
en algún momento de mi proceso de inicio de sesión? Ejecutarlo desde un indicador de bash estándar no ayuda al trabajo cron (aunque, curiosamente, me solicita mi frase de contraseña ... que creo que no es necesaria b / c de la configuración de Keychain Access).
NOTA 1 - antes de redirigirme - Soy consciente de que hay una pregunta similar aquí (
Mac OS X Lion y sshpass ) pero se trata específicamente de un programa sshpass
que no uso (aunque creo que esa pregunta también sería respondida por esta pregunta) )
NOTA 2 - Me doy cuenta de que las claves SSH sin frase de contraseña resolverían mi problema; Sin embargo, preferiría no seguir esta ruta.