usuario una que publica privada llave keygen digitalocean crear clave ubuntu ssh key ssh-agent

ubuntu - una - ssh keygen



Agregar clave privada de forma permanente con ssh-add en Ubuntu (13)

Agregar las siguientes líneas en "~ / .bashrc" solucionó el problema por mí. Estoy usando el escritorio de Ubuntu 14.04.

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)"

Tengo una clave privada protegida con una contraseña para acceder a un servidor a través de SSH.

Tengo 2 máquinas linux (ubuntu 10.04) y el comportamiento del comando ssh-add es diferente en ambas.

En una máquina, una vez que uso "ssh-add .ssh / identity" e ingresé mi contraseña, la clave se agregó permanentemente, es decir, cada vez que apago la computadora y vuelvo a iniciar sesión, la clave ya está agregada.

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

Por lo que recuerdo, hice lo mismo en ambos. La única diferencia es que la clave se creó en la que se agrega de forma permanente.

¿Alguien sabe cómo agregarlo permanentemente a la otra máquina también?


Ejecuto Ubuntu usando dos claves id_rsa. (uno personal por trabajo). ssh-add recordaría una clave (personal) y olvidaría la compañía una cada vez.

Comprobando la diferencia entre los dos, vi que mi clave personal tenía 400 derechos, mientras que la compañía una tenía 600 derechos. (tenía u + w). Eliminar el usuario de escritura directamente desde la clave de la empresa (uw o establecer a 400) solucionó mi problema. ssh-add ahora recuerda ambas teclas.


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

  • inicia el seahorse o lanza esa cosa que encuentres buscando "clave"
  • crear una clave SSH allí (o importar una)
    • no hay necesidad de dejar la contraseña vacía
    • se le ofrece incluso empujar la clave pública a un servidor (o más)
  • terminará con un ssh-agent en ejecución y esta clave cargada, pero bloqueada
  • el uso de ssh recogerá la identidad (es decir, la clave) a través del agente
  • en el primer uso durante la sesión, se comprobará la frase de contraseña
    • y tienes la opción de desbloquear automáticamente la clave al iniciar sesión
    • esto significa que la autenticación de inicio de sesión se utilizará para envolver la frase de contraseña de la clave
  • nota: si desea reenviar su identidad (es decir, el reenvío de agente) invoque su ssh con -A o haga que sea el predeterminado
    • de lo contrario, no podrá autenticarse con esa clave en una máquina en la que inicie sesión más tarde en una tercera máquina

En mi caso la solución fue:

Los permisos en el archivo de configuración deben ser 600. chmod 600 config

Como se menciona en los comentarios anteriores por generalopinion

No es necesario tocar el contenido del archivo de configuración.


Esto funcionó para mí.

ssh-agent /bin/sh ssh-add /path/to/your/key



Intenté la solución de @ Aaron y no me funcionó del todo, porque volvería a agregar mis claves cada vez que abría una nueva pestaña en mi terminal. Así que lo modifiqué un poco (tenga en cuenta que la mayoría de mis claves también están protegidas por contraseña, así que no puedo enviar la salida a / dev / null):

added_keys=`ssh-add -l` if [ ! $(echo $added_keys | grep -o -e my_key) ]; then ssh-add "$HOME/.ssh/my_key" fi

Lo que esto hace es que comprueba la salida de ssh-add -l (que enumera todas las claves que se han agregado) para una clave específica y, si no la encuentra, la agrega con ssh-add .

Ahora, la primera vez que abro mi terminal, me piden las contraseñas de mis claves privadas y no se me vuelve a preguntar hasta que reinicie (o cierre la sesión, no he comprobado) mi computadora.

Como tengo un montón de claves, almaceno la salida de ssh-add -l en una variable para mejorar el rendimiento (al menos creo que mejora el rendimiento :))

PD: Estoy en Linux y este código fue a mi archivo ~/.bashrc . Si estás en Mac OS X, asumo que debes agregarlo a .zshrc o .profile

EDITAR: Como lo señaló @Aaron en los comentarios, el archivo .zshrc se usa desde el shell zsh , así que si no lo está usando (si no está seguro, lo más probable es que esté usando bash ) , este código debe ir a su archivo .bashrc .


Para aquellos que usan Fish Shell, puede usar la siguiente función y luego llamarla en ~ / .config / fish / config.fish. Cargará todas las claves que comiencen con id_rsa en el ssh-agent .

# Load all ssh keys that start with "id_rsa" function loadsshkeys set added_keys (ssh-add -l) for key in (find ~/.ssh/ -not -name "*.pub" -a -iname "id_rsa*") if test ! (echo $added_keys | grep -o -e $key) ssh-add "$key" end end end # Call the function to run it. loadsshkeys

Si desea que ssh-agent inicie automáticamente cuando abre un terminal, puede usar tuvistavie/fish-ssh-agent para hacer esto.



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

Qué

En lugar de iniciar constantemente ssh-agent y ssh-add, es posible usar keychain para administrar sus claves ssh. Para instalar el llavero, puede simplemente hacer clic aquí o usar Synaptic para hacer el trabajo o apt-get desde la línea de comandos.

Línea de comando

Otra forma de instalar el archivo es abrir el terminal (Aplicación-> Accesorios-> Terminal) y escribir:

sudo apt-get install keychain

Editar archivo

Luego debe agregar las siguientes líneas a su $ {HOME} /. Bashrc o /etc/bash.bashrc:

keychain id_rsa id_dsa . ~/.keychain/`uname -n`-sh


Tuve el mismo problema en Ubuntu 16.04: algunas claves se agregaron permanentemente, para otras tuve que ejecutar ssh-add en cada sesión. Descubrí que las claves que se agregaron permanentemente tenían tanto la clave privada como la pública ubicadas en ~/.ssh y las claves que se olvidaron en cada sesión tenían solo claves privadas en ~/.ssh dir. Así que la solución es simple: debe copiar tanto la clave privada como la pública en ~/.ssh antes de ejecutar ssh-add .


muy simple ^ _ ^ dos pasos

1.yum instalar llavero

2. agregue el siguiente código a .bash_profile

/usr/bin/keychain $HOME/.ssh/id_dsa source $HOME/.keychain/$HOSTNAME-sh


Una solución sería forzar el ~/.ssh/config permanente de los archivos clave, agregándolos en su archivo ~/.ssh/config :

IdentityFile ~/.ssh/gitHubKey IdentityFile ~/.ssh/id_rsa_buhlServer

Para que esto funcione, el archivo debe tener chmod 600. Puede usar el comando chmod 600 config .

Si desea que todos los usuarios de la computadora utilicen la clave, coloque estas líneas en /etc/ssh/ssh_config y la clave en una carpeta a la que todos puedan acceder.

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

Host github HostName github.com User git IdentityFile ~/.ssh/githubKey

Deberá clonar con @github en lugar de @ github.com, pero esto tiene la ventaja de que solo se intentará con esta clave.