Tomar la contraseña de un archivo mientras se ingresa SSH a una máquina

Tomar la contraseña de un archivo mientras se ingresa SSH a una máquina

Quiero conectarme por SSH a una máquina remota, pero en lugar de escribir la contraseña, quiero redirigirla desde otro archivo.

Entonces tengo un archivo password.txtque almacena la contraseña. File.shes mi archivo bash.

EnFile.sh

#!/bin/bash
ssh -T [email protected]

Mientras ejecutaba el archivo, hice:

./File.sh < password.txt

Pero de todos modos me pidieron que ingresara la contraseña.

¿Cómo consigo que la contraseña se ingrese desde el archivo?

Respuesta1

SSH con 'contraseña en un archivo' se usa comúnmente como autenticación de clave pública. Cree un par de claves usando ssh-keygen, cargue la clave pública en el otro host:

scp ./.ssh/id_rsa.pub [email protected]:~/

y colóquelo como ~/.ssh/authorized_keys:

ssh [email protected]
mkdir ~/.ssh
mv ~/id_rsa.pub ~/.ssh/authorized_keys

o, si authorized_keysya existe un archivo:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

establezca los permisos apropiados (600 para el archivo, 700 para el directorio):

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

e iniciar una nueva sesión ssh.

Respuesta2

Puedes usar sshpasspara hacer eso:

sshpass -f password.txt ssh -T [email protected]

Respuesta3

#!/usr/bin/expect -f
spawn ssh shw@hostname
expect -exact "shw@hostname's password: "
send -- "PASSWORD\r"
expect "$ "
interact

Expect es una herramienta para automatizar el proceso.

información relacionada