So übergeben Sie die Standardeingabe beim Anmelden beim Remote-Server über ein Skript

So übergeben Sie die Standardeingabe beim Anmelden beim Remote-Server über ein Skript

Beim Anmelden bei meinem Remote-Server wird eine Benutzereingabe erwartet; sein Bash-Profil wird entsprechend geändert.

[nikhil]$ cat .bash_profile
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
read -p "enter your name " Name
echo $Name

Wie kann ich mich per SSH bei diesem Remote-Server anmelden und diese Eingabe per Skript weitergeben?

Antwort1

Installieren expect:

apt-get install expect

Führen Sie das folgende Skript aus:

$ 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

Passen Sie Folgendes an:

  • root@servermit Ihren tatsächlichen Server-Verbindungsparametern
  • offensichtlich das Passwort
  • der Name, den Sie dem Skript .bash_profileauf dem Zielserver geben möchten
  • der eigentliche Befehl, den Sie auf dem Zielserver ausführen möchten (anstelle von echo $$)

verwandte Informationen