Escribí un script simple que envía por correo los registros de actividad de svn a nuestros desarrolladores. Hasta ahora, lo había ejecutado en la misma máquina que el repositorio svn, así que no tenía que preocuparme por la autenticación, solo podía usar el estilo de dirección svn file: ///.ssh-agent y crontab: ¿hay una buena manera de que se cumplan?
Ahora estoy ejecutando el script en una computadora hogareña, accediendo a un repositorio remoto, así que tuve que cambiar a svn + ssh: // paths. Con ssh-key muy bien configurado, nunca tengo que ingresar contraseñas para acceder al repositorio svn en circunstancias normales.
Sin embargo, crontab no tuvo acceso a mis ssh-keys/ssh-agent. He leído acerca de este problema un par de lugares en la web, y también es aludido aquí, sin resolución:
Why ssh fails from crontab but succedes when executed from a command line?
Mi solución fue la de añadir esto a la parte superior de la secuencia de comandos:
### TOTAL HACK TO MAKE SSH-KEYS WORK ###
eval `ssh-agent -s`
Parece que esto funciona en MacOSX 10.6.
Mi pregunta es, ¿qué tan terrible es esto, y hay una manera mejor?
Me sorprendió también, pero creo que la respuesta para eso está aquí: http://serverfault.com/questions/108798/ssh-passphrase-remembered-in-macosx-snow-leopard Supongo que es una combinación de contraseñas almacenadas en el llavero del sistema, y tener ssh-keys agregadas hasta el cierre de sesión del sistema. Pero eso es solo una suposición. ¡Gracias por el consejo sobre matar el proceso de cron ssh-agent! – khedron
Votando porque tenía alrededor de una docena de procesos de ssh-agent ejecutándose en segundo plano, después de mi prueba de anoche. ¡Gracias! – khedron