¿Cómo agregar una clave privada permanentemente usando ssh-add en Ubuntu? [apagar]

How Add Private Key Permanently Using Ssh Add Ubuntu

Tengo una clave privada protegida con contraseña y puedo acceder al servidor a través de SSH.

Tengo 2 linux ubuntu 10.04) Máquina, el comportamiento del comando ssh-add es diferente en ambos.



En una máquina, una vez que uso 'ssh-add.ssh / identity' e ingreso mi contraseña, la clave se agregará de forma permanente, es decir, cada vez que apago la computadora y vuelvo a iniciar sesión, la clave se ha agregado.



En el otro, tengo que agregar la clave cada vez que inicio sesión.



Por lo que recuerdo, hice lo mismo con ambos. La única diferencia es que la clave se crea en la clave agregada permanentemente.

¿Alguien sabe cómo agregarlo permanentemente a otras máquinas?


#1er piso

En Mac OS X Lion, no respondí la misma pregunta. Finalmente agregué:



|_+_|

Para mi .zshrc (pero .profile tampoco importa), esto parece solucionarlo.

(Como se muestra aquí: http//geek.michaelgrace.org/2011/09/permanently-add-ssh- llave -ssh-agregar /)


#2 ° piso

Probé la solución de @ Aaron y no me fue muy útil porque cada vez que abro una nueva pestaña en el terminal volverá a agregar mi clave. Así que lo modifiqué un poco (tenga en cuenta que la mayoría de mis claves también están protegidas con contraseña, por lo que no puedo enviar la salida a / dev / null):

|_+_|

Esto se hace para verificar la clave específica ssh-add ~/.ssh/id_rsa &>/dev/null (Enumere todas las claves agregadas), si no se encuentra, agréguelo a added_keys=`ssh-add -l` if [ ! $(echo $added_keys | grep -o -e my_key) ] then ssh-add '$HOME/.ssh/my_key' fi

Ahora, cuando abro el terminal por primera vez, se me pide que ingrese la contraseña para la clave privada hasta que reinicie (o cierre la sesión, no lo verifiqué), mi computadora no volverá a preguntar.

Como tengo un montón de claves, lo haré ssh-add -l La salida se almacena en una variable para mejorar el rendimiento (al menos supongo que puede mejorar el rendimiento :))

PD: Estoy en Linux, este código va al mío ssh-add Archivo: si está en Mac OS X, creo que debería agregarlo a ssh-add -l o ~/.bashrc

Editar: como se señala en el comentario @Aaron .zshrc Archivo de uso .profile Shell, por lo que si no lo usa (si no lo sabe, lo más probable es que esté usando .zshrc En su lugar), este código debe ir al archivo zsh.


# 3er piso

En mi caso, la solución es:

Los permisos del archivo de configuración deben ser 600. bash

Como se mencionó en los comentarios anteriores opinión general

No es necesario tocar el contenido del perfil.


#4to piso

En Ubuntu 14.04 (probablemente antes, quizás todavía) ni siquiera necesitas una consola:

  • Inicio .bashrc O descubra lo que encontró para buscar 'clave'
  • Cree una clave SSH allí (o importe una)
    • No es necesario dejar la contraseña en blanco
    • Incluso puede enviar la clave pública al servidor (o más)
  • Terminarás ejecutando un ssh-agent Y cargue esta llave, pero está bloqueada
  • use chmod 600 config La identidad (es decir, la clave) se obtendrá a través del proxy
  • Cuando se usa por primera vez durante una sesión, se verificará la frase de contraseña
    • Y puede optar por desbloquear automáticamente la clave cuando inicie sesión
    • Esto significa que la autenticación de inicio de sesión se utilizará para ajustar la contraseña de la clave.
  • Nota: Si desea reenviar su identidad (es decir, reenvío de proxy), utilice seahorse Llame a su ssh O configúrelo como predeterminado
    • De lo contrario, no puede Inicie sesión en la computadora de la tercera computadora más tarde Usa esta clave subirse Autenticación

#5to piso

Resolví este problema en Mac OSX (10.10) usando la opción -K en ssh-add:

|_+_|

Para macOS 10.12 y versiones posteriores, debe editar la configuración de SSH por separado de la siguiente manera: https//github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain


#6 ° piso

Añadiendo el siguiente comportamiento en '~ / .bashrc' resolví el problema. Estoy usando el escritorio Ubuntu 14.04.

|_+_|

#7 ° piso

Muy simple ^ _ ^ dos pasos

1.yum instalar llavero

2. Agregue el siguiente código a .bash_profile

|_+_|

# 8 piso

Simplemente agregue el llavero, como se describe en los Consejos rápidos de Ubuntu, https://help.ubuntu.com/community/QuickTips

qué

En lugar de iniciar constantemente ssh-agent y ssh-add, puede usar keychain para administrar sus claves ssh. Para instalar Keychain, todo lo que necesita hacer es hacer clic aquí, o usar Synaptic para ejecutar trabajos o apt-get desde la línea de comandos.

Línea de comando

Otra forma de instalar archivos es abrir el terminal (Aplicación-> Accesorios-> Terminal) e ingresar:

|_+_|

Editar archivo

Luego, debe agregar la siguiente línea a $ {HOME} /. Bashrc o /etc/bash.bashrc:

|_+_|

# 9 piso

Utilizo dos claves id_rsa para ejecutar Ubuntu. (Trabajar solo). ssh-add recordará una clave (clave personal) y olvidará la clave de la empresa cada vez.

Al comprobar la diferencia entre los dos, veo que mi clave personal tiene 400 derechos, mientras que la empresa tiene 600 derechos. (Tienes + w). Eliminar el permiso de escritura del usuario de la clave de la empresa (uw o establecido en 400) resolvió mi problema. ssh-add ahora puede recordar estas dos claves.


#piso 10

La solución es a través de -A Agregar un archivo de clave al archivo para forzar que el archivo de clave se guarde permanentemente:

|_+_|

Si no hay un archivo 'config' en el directorio ~ / .ssh, entonces debería crear uno. No requiere permisos de root, así que simplemente diga:

|_+_|

... E ingrese la línea anterior de acuerdo con sus requisitos.

Para esto, el archivo debe tener chmod 600. Puede usar el comando ssh

Si desea que todos los usuarios de su computadora usen la clave, coloque estas líneas en ssh-add -K ~/.ssh/your_private_key Y coloque la clave en una carpeta a la que todos puedan acceder.

Además, si desea establecer una clave específica para un host, puede hacer lo siguiente en ~ / .ssh / config:

|_+_|

Cuando tienes muchas identidades, el servidor no te rechaza porque intentaste primero con la identidad incorrecta, lo cual tiene una ventaja. Solo se probarán determinadas identidades.


# 11 piso

Esto funcionó para mí.

|_+_|

# 12 piso

Para los usuarios que usan Fish shell, pueden usar la siguiente función y luego llamarla en ~ / .config / fish / config.fish. Va a id_rsa Todas las claves al principio se cargan en eval `gnome-keyring-daemon --start` USERNAME='reynold' export SSH_AUTH_SOCK='$(ls /run/user/$(id -u $USERNAME)/keyring*/ssh|head -1)' export SSH_AGENT_PID='$(pgrep gnome-keyring)'

|_+_|

Si desea que se inicie automáticamente al abrir el terminal /usr/bin/keychain $HOME/.ssh/id_dsa source $HOME/.keychain/$HOSTNAME-sh ,puedo usar tuvistavie / fish-ssh-agent Para hacer esto.


# 13 piso

Tuve el mismo problema en Ubuntu 16.04: algunas claves se agregan permanentemente, otras las tengo que ejecutar en cada sesión sudo apt-get install keychain . Descubrí que la clave agregada permanentemente tiene una clave privada y una clave pública, ubicadas en keychain id_rsa id_dsa . ~/.keychain/`uname -n`-sh , La clave olvidada en cada sesión es solo ~/.ssh/config En el catálogo IdentityFile ~/.ssh/gitHubKey IdentityFile ~/.ssh/id_rsa_buhlServer . Por tanto, la solución es sencilla: debes copiar privado Y clave pública nano ~/.ssh/config Antes de la ejecución chmod 600 ~/.ssh/config