Intenta ssh-add
, debes ssh-agent
estar ejecutando y manteniendo tu clave privada
(Ok, respondiendo a la pregunta actualizada, primero se ejecuta ssh-keygen
para generar una clave pública y privada como explicó Jefromi . Se pone la clave pública en el servidor. Debería usar una frase de contraseña, si no tiene el equivalente de un simple -Texto contraseña en su clave privada. Pero cuando lo haga, entonces necesita como cuestión práctica como se explica a continuación.)ssh-agent
Desea ejecutarse ssh-agent
en segundo plano cuando inicie sesión. Una vez que inicie sesión, la idea es ejecutar ssh-add
una vez y solo una vez, para darle al agente su frase de contraseña, para decodificar su clave. El agente simplemente se queda en la memoria con su llave desbloqueada y cargada, lista para usar cada vez que ssh en algún lugar.
Todos los comandos ssh-family 1 consultarán al agente y podrán usar automáticamente su clave privada.
En los sistemas OSX (err, macOS ), GNOME y KDE, ssh-agent
generalmente se inicia automáticamente para usted. Revisaré los detalles en caso de que, como yo, usted también tenga un entorno Cygwin u otro entorno de Windows donde esto ciertamente no se hace por usted.
Haga clic aquí: man ssh-agent
.
Hay varias formas de ejecutar automáticamente el agente. Como explica la página del manual, puede ejecutarla para que sea un padre de todos los demás procesos de su sesión de inicio de sesión. De esa manera, las variables de entorno que proporciona estarán automáticamente en todos sus shells. Cuando (más tarde) invocas ssh-add
ossh
ambos tendrán acceso al agente porque todos tienen las variables de entorno con nombres de ruta de socket mágicos o lo que sea.
Alternativamente, puede ejecutar el agente como un hijo ordinario, guardar la configuración del entorno en un archivo y obtener ese archivo en cada shell cuando se inicie.
Mis sistemas OSX y Ubuntu realizan automáticamente la configuración de inicio del agente, por lo que todo lo que tengo que hacer es ejecutarlo ssh-add
una vez. Intente ejecutar ssh-add
y ver si funciona, si es así, solo necesita hacerlo una vez por reinicio.
Mi sistema Cygwin necesitaba hacerlo manualmente, así que hice esto en mi .profile
y tengo .bashrc
fuente .profile
:
. .agent > /dev/null
ps -p $SSH_AGENT_PID | grep ssh-agent > /dev/null || {
ssh-agent > .agent
. .agent > /dev/null
}
El .agent
archivo es creado automáticamente por el script; contiene las definiciones de variables de entorno y exportaciones. Lo anterior intenta obtener el archivo .agent y luego intenta con ps(1)
el agente. Si no funciona, inicia un agente y crea un nuevo archivo de agente. También puede simplemente ejecutar ssh-add
y, si falla, iniciar un agente.
1. E incluso local y remoto sudo
con la extensión de pam correcta.