Automatisierter SSH-Login mit expect

Script um unter Linux eine SSH-Verbindung automatisiert aufbauen zu können ohne seinen SSH-Key auf dem SSH-Server zu hinterlegen.
Voraussetzung ist das “expect” installiert ist.


#!/usr/bin/expect -f
# ./DATEINAME host user pass rootpw port

set host [lindex $argv 0]
set user [lindex $argv 1]
set pass [lindex $argv 2]
set rpass [lindex $argv 3]
set port [lindex $argv 4]
# Starte SSH
spawn ssh $user@$host -p$port
# wenn Authkey noch nicht bekannt, mit ja bestätigen
expect_background "authent" {
send "yes\r"
}
# wenn Terminal unbekannt, setzte auf vt100
expect "unknown" {
send "vt100\r"
}
# wenn Passwort verlangt wird, übergebe es
expect "asswor" {
send_user -- "$pass"
send -- "$pass\r"
send "\r"
}
sleep 2;
# werde SuperUser (root)
send "su\r"
sleep 1;
# wenn Passwort verlangt wird, übergebe es
expect "asswor" {
send_user -- "$rpass\r"
send -- "$rpass\r"
}
# Übergebe an Benutzer
interact

Script in einer Datei speichern, diese ausführbar machen “chmod +x DATEINAME”.
Aufruf dann wie folgt:
./DATEINAME

Automatisierter SSH-Login mit expect
Tags »

Autor:
Datum: Freitag, 9. Juli 2010 13:59
Trackback: Trackback-URL Themengebiet: GNU/Linux

Feed zum Beitrag: RSS 2.0 Diesen Artikel kommentieren

Kommentar abgeben