Al iniciar sesión en mi servidor remoto, espera una entrada del usuario, su bash_profile se modifica de esa manera.
[nikhil]$ cat .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
read -p "enter your name " Name
echo $Name
¿Cómo puedo iniciar sesión en este servidor remoto usando ssh y pasar esa entrada a través de un script?
Respuesta1
Instalar expect
:
apt-get install expect
Ejecute el siguiente script:
$ expect <<EOF
set timeout -1
spawn ssh -o "StrictHostKeyChecking=no" root@server
expect "root@server's password:"
send -- "12345678PASSWORD\r"
expect "enter your name "
send -- "susan\r"
expect "root@server"
send -- "echo $$\r"
send -- "exit\r"
expect eof
EOF
Adapte lo siguiente:
root@server
con los parámetros reales de conexión del servidor- obviamente la contraseña
- el nombre que desea proporcionar al script dentro
.bash_profile
del servidor de destino - el comando real que desea ejecutar en el servidor de destino (en lugar de
echo $$
)