Estoy intentando que los siguientes comandos se ejecuten automáticamente cuando inicio sesión en mi servidor a través de ssh:
ssh-agent /bin/bash
ssh-add ~/.ssh/id_rsa
Mi clave ssh tiene una frase de contraseña y estoy bien con ingresarla una vez por inicio de sesión.
Intenté poner esto en mi archivo .bashrc, sin embargo, creo que ssh-agent inicia una nueva sesión de bash. Cuando intento iniciar sesión después de tener esto en mi .bashrc, se atasca y tengo que escribir 'salir' para ver el mensaje 'ingresar contraseña para desbloquear clave'
¿Cualquier otra sugerencia?
El servidor está ejecutando Ubuntu LTS
git pull
y cosas así en el servidor remotoRespuestas:
Puedes intentar agregar esto:
De esta manera
ssh-agent
, no inicia un nuevo shell, solo se inicia en segundo plano y escupe los comandos del shell para establecer las variables de entorno apropiadas.Como se dijo en el comentario, tal vez no desee ejecutar el agente en absoluto en el host remoto, sino en el cuadro desde el que está trabajando y usar
reenviar los servicios de su agente ssh local al host remoto.
Por razones de seguridad, solo debe utilizar el reenvío de agentes con hosts administrados por personas confiables, pero es mejor que ejecutar un agente completo de forma remota en cualquier momento.
fuente
ssh-agent /bin/bash
conssh-agent -s
, y luego trato de hacerlogit pull
, todavía me piden la frase de contraseña de la clave privada para desbloquearla. Eso no es realmente lo que quiero, solo quiero ingresar la frase de contraseña al hacer ssh-add, y no tener que repetirla cada vez que ejecuto algún comando git. ¿Algunas ideas?Una alternativa es usar Funtoo llavero . Entonces puedes pegar esta frase en tu caparazón de bash:
Eso hace lo mismo (inicia el agente ssh, etc.), mientras que tampoco ejecuta un proceso ssh-agent para cada subshell. En su lugar, busca las instancias "ya en ejecución" que posee y las adjunta a ellas.
fuente