ssh-clave con la frase de contraseña, con llavero
llavero es una pequeña utilidad que administra ssh-agente en su nombre y permite que el ssh-agente permanezca funcionando al terminar la sesión de inicio de sesión. En inicios de sesión posteriores, keychain se conectará a la instancia existente de ssh-agent. En la práctica, esto significa que la frase de contraseña debe ingresarse solo durante el primer inicio de sesión después de reiniciar. En los inicios de sesión posteriores, se utiliza la clave no encriptada de la instancia existente de ssh-agent. Esto también puede ser útil para permitir la autenticación RSA/DSA sin contraseña en trabajos cron sin claves ssh sin contraseña.
Para habilitar el llavero, instálelo y agregue algo como lo siguiente a ~ /.bash_profile:
eval keychain --agents ssh --eval id_rsa
Desde el punto de vista de la seguridad, ssh-ident llavero y son peores que las instancias ssh-agente limitado a la duración de una sesión en particular, sino que ofrecen un alto nivel de comodidad. Para mejorar la seguridad de keychain, algunas personas agregan la opción --clear a su invocación de cadena ~/.bash_profile. Al hacer esto, las contraseñas deben reingresarse al iniciar sesión como se indicó anteriormente, pero las tareas cron seguirán teniendo acceso a las claves no encriptadas después de que el usuario cierre la sesión. La página wiki de keychain tiene más información y ejemplos.
Obtuve esta información de;
https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt
Esperanza esto ayuda
he podido constatar personalmente para introducir automáticamente mi frase de contraseña en el lanzamiento del terminal al hacer esto: (se puede, por supuesto, modificar el guión y ajustarlo a sus necesidades)
edite el archivo bashrc para agregar este script;
Comprobar si el agente SSH está despierto
if [-z "$ SSH_AUTH_SOCK"]; entonces exec ssh-agent fiesta -c "ssh-add; $ 0" echo "El agente SSH fue despertado" salida fi
Por encima de la línea se iniciará la secuencia de comandos esperar al lanzamiento del terminal.
./ssh.exp
aquí es el contenido de esta secuencia de comandos esperar
#!/usr/bin/expect
set timeout 20
set passphrase "test"
spawn "./keyadding.sh"
expect "Enter passphrase for /the/path/of/yourkey_id_rsa:"
send "$passphrase\r";
interact
Aquí es el contenido de mi guión keyadding.sh (hay que poner las dos secuencias de comandos en la carpeta de inicio, generalmente/home/usuario)
#!/bin/bash
ssh-add /the/path/of/yourkey_id_rsa
exit 0
te sugeriría altamente cifrado de la pa ssword en el script .exp, así como el cambio de nombre de este archivo .exp a algo como term_boot.exp o cualquier otra cosa por motivos de seguridad. No olvide crear los archivos directamente desde la terminal usando nano o vim (por ejemplo, nano ~/.bashrc | nano term_boot.exp
) y también chmod +x script.sh
para hacerlo ejecutable. Un chmod +r term_boot.exp
también sería útil, pero deberá agregar sudo antes de ./ssh.exp en su archivo bashrc. Por lo tanto, deberá ingresar su contraseña de sudo cada vez que lance su terminal. Para mí, es más conveniente que la frase de contraseña porque recuerdo mi contraseña de administrador (sudo) en el hogar.
Además, he aquí otra manera de hacerlo, creo; https://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/
Sin duda, cambiaré mi método para este cuando tenga el tiempo.
Realmente deberíamos dejar de promocionar esperar como una forma de automatizar ssh. Ssh intencionalmente hace que estas indicaciones sean difíciles de automatizar para empujarnos a utilizar las soluciones correctas: indicadores de línea de comando para eludir confirmaciones y claves públicas/privadas para eliminar las solicitudes de contraseña. –
Eso es ideal, pero el mundo real a menudo no es ideal. Para la pregunta que se plantea, esa es la forma típica de hacerlo.Si usó claves, probablemente también quiera una contraseña en su clave, y entonces puede estar en la misma situación. Claro, podrías 'ssh-agent',' keychain', etc. pero a veces hay razones que son inconvenientes o poco prácticas. – jjlin