Como passar a entrada padrão ao fazer login no servidor remoto por meio de script

Como passar a entrada padrão ao fazer login no servidor remoto por meio de script

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@servercom os parâmetros reais de conexão do servidor
  • obviamente a senha
  • o nome que você deseja fornecer ao script interno .bash_profileno servidor de destino
  • o comando real que você deseja executar no servidor de destino (em vez de echo $$)

informação relacionada