¿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 sussh
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
。