Ao fazer login no meu servidor remoto, ele espera uma entrada do usuário, seu bash_profile é modificado dessa forma.
[nikhil]$ cat .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
read -p "enter your name " Name
echo $Name
Como posso fazer login neste servidor remoto usando ssh e passar essa entrada por meio de script.
Responder1
Instalar expect
:
apt-get install expect
Execute o seguinte 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 o seguinte:
root@server
com os parâmetros reais de conexão do servidor- obviamente a senha
- o nome que você deseja fornecer ao script interno
.bash_profile
no servidor de destino - o comando real que você deseja executar no servidor de destino (em vez de
echo $$
)