Estoy usando Awesome Window Manager
¿Cómo puedo agregar permanentemente claves privadas con contraseña?
Inspirado por la respuesta aquí , he agregado las claves privadas en ~ / .ssh / config
Contenido de ~ / .ssh / config:
IdentityFile 'private key full path'
Permisos de ~ / .ssh / config: 0700
Pero no me funciona.
Si agrego manualmente la clave en cada sesión, funciona, pero estoy buscando una forma más elegante (no en .bashrc)
EDITAR :
- Usando la versión clásica de Gnome (sin efectos).
Después de agregar la clave SSH con ssh-copy-if
el host remoto, aparece el siguiente mensaje en el terminal (GNOME Terminal 3.0.1) cuando inicio sesión:
ssh -i .ssh/Password-Protected-Key user@host
Enter passphrase for key '.ssh/Password-Protected-Key':
- Usando Awesome Window Manager v3.4.10. Ya lo había hecho,
gnome-keyring-dameon
así que maté al otro pid ygnome-keyring-daemon --start | grep SOCK
ejecuté (también lo agregué en .profile) la salida (grep):
SSH_AUTH_SOCK=/tmp/keyring-2LXXXX/ssh
Seguí exactamente los mismos pasos e igualmente no tengo ningún diálogo GUI ssh-add.
EDITAR 2 :
Creé una nueva clave protegida por contraseña de la máquina virtual Ubuntu 11.10 en unity y todavía no puedo obtener ninguna solicitud de contraseña.
EDITAR 3 : Parece que esto no puede funcionar en Awesome window manager :( y posiblemente otros ...
fuente
Respuestas:
Si está utilizando Unity o un administrador de sesión que inicia gnome-keyring-daemon, simplemente puede usar Seahorse (Contraseñas y claves) para establecer una clave, definir para qué sirve, establecer una frase de contraseña y distribuir su clave pública a computadora que vas a usar con ssh. No se necesitan comandos de terminal.
Usted crea la contraseña de la siguiente manera:
seleccionando File-> New y seleccione Secure Shell Key. Presione Continuar.
Escriba un nombre descriptivo y seleccione
Create and set up
.Se le pedirá que ingrese una frase clave dos veces (la segunda vez para verificar que no la ingresó incorrectamente la primera vez).
Ingrese la computadora en la que se debe usar la clave pública y el nombre de usuario en esa computadora para la cual usará la clave. La clave pública se copiará en esa otra computadora, solicitando su contraseña en esa computadora si es necesario.
Ahora la
My Personal Keys
pestaña mostrará la clave.Suponiendo que gnome-keyring-daemon se inició correctamente cuando inició sesión en Lightdm, y nuevamente por su administrador de sesión, cuando use la clave por primera vez con ssh, se le pedirá la frase clave. En este cuadro de diálogo puede proporcionar la frase clave, seleccionar el
Details
control y solicitar que se desbloquee el llavero cada vez que inicie sesión, proporcionando automáticamente esta clave. prensaOKEs posible que no se le solicite de esta manera si hay otra clave disponible para iniciar sesión en la computadora remota.
Después de que esto se haya logrado, la primera pestaña Seahorse
Passwords
mostrará una "Entrada de contraseña de desbloqueo" para el nombre de la clave. Haga clic en el triángulo antes de " Contraseñas: Iniciar sesión" para verlo.fuente
Hacer que una clave SSH protegida con contraseña persista entre sesiones y reinicios
Esto es probablemente lo que desea: ingresar la frase de contraseña clave una vez que esté disponible para siempre cuando esté conectado. Funcionará para la mayoría de los usuarios que usan los escritorios Unity o Gnome.
Cuando se conecta después de agregar la clave pública al servidor remoto, obtendrá el cuadro de diálogo ssh-add de la GUI:
Expanda los "Detalles" haciendo clic en el triángulo, y obtendrá lo siguiente. El valor predeterminado es "bloquear llavero cuando cierre sesión", que requiere que ingrese la contraseña una vez por sesión:
Cámbielo a Desbloqueo automático ... cada vez que inicie sesión , lo que significa que funcionará siempre que haya iniciado sesión en su sesión: está "controlado" por su contraseña de usuario. Persistirá durante los reinicios.
Ingrese la frase clave una vez y listo: la clave se autentica a través del inicio de sesión exitoso inicial en su entorno de escritorio.
Si estás usando AwesomeWM
Probado con una nueva instalación de AwesomeWM en un nuevo ID de usuario
Por defecto, AwesomeWM usa
ssh-agent
:Para que los pasos anteriores funcionen, debe usar
gnome-keyring-daemon
como demonio de autenticación SSH, no ssh-agent. Cuando inicia sesión con lightdm, se inicia PAMgnome-keyring-daemon
que intentará desbloquear una clave de inicio de sesión con su contraseña de desbloqueo, pero debe agregar a su configuración para mantenerla en funcionamiento y usarla.Agregue lo siguiente al final de su
~/.xprofile
:Los comandos en el
~/.xprofile
archivo serán ejecutados por xsession antes de iniciar el impresionante administrador de ventanas y lo vinculará con elgnome-keyring-daemon --login
proceso iniciado por PAM a través de las variables de entorno anteriores.ssh user@host
, debería obtener las ventanas emergentes anteriores: úselas para decodificar sus claves privadas en ~ / .ssh / y guarde sus claves privadas en el llavero de inicio de sesión de gnome-keyring.La solución general para cualquier entorno de escritorio / administrador de ventanas
es usar en
gnome-keyring-daemon
lugar dessh-agent
. Para esto, debe estar ejecutándosegnome-keyring-daemon
y tenerlo inicializado y hacer esto después de quessh-agent
se inicie o no iniciarssh-agent
en absoluto.ssh
(en realidad, ssh-add) decide a qué agente de autenticación llamar en función del valor de laSSH_AUTH_SOCK
variable de entorno, que se puede verificar escribiendoexport | grep SOCK
este es el formulario
SSH_AUTH_SOCK=/tmp/ssh-MMFyVlI22130/agent.22130
para ssh-agent (NO es lo que desea poder guardar su clave)pero de la forma
SSH_AUTH_SOCK="/tmp/keyring-mEQB5g/ssh"
para gnome-keyring-daemon (que quieres)así que verifique el valor, y verifique
ps aux | grep keyring
que gnome-keyring-daemon se esté ejecutando, y si es así, inicialícelo con los resultados degnome-keyring-daemon --start
a continuación, puede verificar las identidades guardadas asociadas en la consola escribiendo
ssh-add -l
: si muestra "sin agente", cometió un error al configurar gnome-keyring-daemon.fuente
~/.ssh
, no hay necesidad de usarlasssh-add
; el cuadro de diálogo aparecerá al primer uso. Tenga en cuenta que esto solo funciona en Unity / Gnome: ¡descubrí en el chat que el OP está usando AwesomeWM , donde esto no funciona!La solución a su problema es usar el agente ssh. Solo tiene que desbloquear la contraseña de su clave una vez, luego el agente la guarda en la memoria y la usa automáticamente
ssh-keygen -t dsa
ssh-copy-id
para esto)ssh-add
antes de iniciar sesión en el sistema remoto, esto le pedirá su contraseña y la almacenarássh-agent se describe bien en .net, por ejemplo aquí:
Otra ventaja de ssh-agent es que si inicia sesión en el sistema remoto con
ssh -A [email protected]
él, puede enviar más ssh desde la computadora domain.name a una tercera computadora que contenga su clave pública sin tener que copiar su clave privada en la computadora domain.name (y nunca ve su clave privada, solo el desafío / respuesta única).fuente
puedes usar
ssh-add 'filename or fullpath'
se le pedirá la frase de contraseña si tiene una clave
entonces puedes conectarte sin contraseña
fuente
Si desea trabajar con claves privadas, haga lo siguiente:
Entonces:
copiar
.ssh/id_rsa.pub
al destino de la máquina a.ssh/authorized_keys
través de scpTodo listo.
Conéctese a la máquina remota sin contraseña:
Y no tenemos solicitud de contraseña.
fuente