openssh: haga que ssh agregue claves al agente según sea necesario


25

Cuando ssh en un servidor y mi clave no está cargada en el agente, tengo que abortar, luego ejecutar ssh-add para obtener mi clave en el agente. Sin embargo, me gustaría que el comando ssh agregue la clave automáticamente si no está presente. es posible?


¿Tiene una clave para todos los hosts de destino o tiene claves diferentes con contraseñas diferentes? ¿Estás utilizando masilla de Windows o estás utilizando un sistema de ventanas basado en X en Linux o estás en una Mac?
Oteo

Estoy usando solo una tecla y openssh. ssh ya descubre la clave correcta y me pide la frase de contraseña, pero después de ingresarla, la clave no se guardará en el agente. Este comportamiento es el mismo en todos los sistemas POSIX y cygwin.
enigmaticPhysicist


No, eso es diferente. Quiero ingresar la contraseña clave cada vez que se detiene el agente. Solo me gustaría que ssh agregue la clave al agente directamente según sea necesario, en lugar de tener que usar ssh-add primero.
enigmaticPhysicist

Respuestas:


35

La AddKeysToAgentopción hace lo que quiero. Puedo especificar -o AddKeysToAgent=yesen la línea de comando o agregar AddKeysToAgent yesuna línea sola en mi .ssh/config. Cualquiera de los dos funciona.

¡Parece que esta es una adición muy reciente a openssh, que aparece en la versión 7.2, fechada el 28/02/2016!

http://www.openssh.com/txt/release-7.2

Gracias OpenBSD! Lo usaré mucho .


.ssh / config: línea 3: opción de configuración incorrecta: AddKeysToAgent. ¿Alguna idea? Servidor Unix
trainoasis

Comprueba tu versión de openssh. $ ssh -V. Tiene que ser más nuevo o igual a 7.2.
enigmáticoFísico

De hecho ese fue el caso, gracias. Sin embargo, todavía pide contraseña después de volver a iniciar sesión. ¿Cómo automatizar git pull mediante script, por ejemplo, si siempre necesita ingresar pass? Y supongo que id_rsa sin contraseña no es una buena idea ...
trainoasis

¿Te refieres entre inicios de sesión ssh o entre inicios de sesión locales? Se supone que la contraseña se borra entre los inicios de sesión locales.
enigmáticoFísico

Cada vez que ejecuto un script localmente, debería enviar ssh allí y ejecutar git pull, etc., pero por supuesto no puede porque necesita contraseña para los comandos GIT (ssh funciona sin porque pass está en Keychain, pero los comandos allí piden pasar)
trainoasis
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.