Como parte de un script de inicio, tengo que abrir automáticamente varias ventanas de terminal gnome, una de esas terminales envía automáticamente:
ssh [email protected]
La limitación con esto es que todavía necesito escribir una contraseña para completar la conexión SSH.
Lo que quiero hacer es que mi script inicie el comando y complete la conexión. En ese sentido, intenté seguir las instrucciones que se detallan en la respuesta aceptada aquí .
Desde el sistema desde el que deseo conectarme, ejecuté:
ssh-keygen
Enter file in which to save the key: /home/user/ssh/keys/server1key
Luego me solicitó ingresar una frase de contraseña. Lo dejé vacío, ya que no estaba seguro de para qué sería, así que asumí que configurar uno requeriría desbloquearlo con dicha frase de contraseña cada vez que lo usara.
Continuando con las instrucciones vinculadas anteriormente, corrí y recibí lo siguiente:
ssh-copy-id user@IP
ERROR: No identities found
Una búsqueda rápida reveló que necesitaba especificar la ubicación de la clave, ya que no estaba en la ubicación de guardado predeterminada, así que arreglé eso:
ssh-copy-id -i /home/user/ssh/keys/server1key.pub [email protected]
Después de pedir la contraseña del servidor, agregó con éxito la clave. Sin embargo, al intentar iniciar sesión con "ssh user @ IP", aún se me solicitó la contraseña.
Hasta donde sé, seguí las instrucciones vinculadas correctamente, ¿o me falta algo o tal vez una configuración existente me impide hacer que esto funcione?
Ambos sistemas usan 18.04 y openssh.
fuente
Respuestas:
Falla por la misma razón que
ssh-copy-id
falló la primera vez, es decir, porque ha elegido una ubicación no predeterminada para el archivo de identidad.Puede resolverlo de la misma manera, agregando
-i /home/user/ssh/keys/server1key
a sussh
comando: tenga en cuenta que el lado del cliente necesita la ubicación del archivo de clave privada .Desde
man ssh
Alternativamente, es posible que desee crear una
~/.ssh/config
entrada de archivo para el host a lo largo de las líneas defuente
~/.ssh/config
, de lo contrario OpenSSH usa el valor predeterminado de todo el sistema/etc/ssh/ssh_config
. En caso de que alguien lo encuentre útil, cargué un ssh_config preconstruido en mi GitHub hace un tiempo como punto de partida para los usuarios que pueden no tener tiempo para leer la página de~/.ssh/config
globalesssh_config
, pero solo tener el archivo no deshabilitará la configuración de todo el sistema.Otra razón que
ssh-copy-id
falla es que la clave no se ha agregado al agente SSH.Primero, verifique y comience si se
ssh-agent
está ejecutando:Si obtiene la identificación del proceso, puede agregar su clave:
Con
-k
usted agregue la llave al llavero.Compruebe si las claves se agregan con:
ssh-copy-id
debería estar trabajando ahora.fuente
Espero que esto funcione para usted ... "sshpass -p yourpassword" se conectará automáticamente al host remoto.
[root @ localhost .ssh] # sshpass -p contraseña123 ssh -l root localhost
fuente
Simplemente ejecute 2 comandos:
Respuesta larga:
Y entonces:
fuente