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@server
mit Ihren tatsächlichen Server-Verbindungsparametern- offensichtlich das Passwort
- der Name, den Sie dem Skript
.bash_profile
auf dem Zielserver geben möchten - der eigentliche Befehl, den Sie auf dem Zielserver ausführen möchten (anstelle von
echo $$
)