Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Expect und Bash mischen

  1. #1
    Registrierter Benutzer
    Registriert seit
    Dec 2016
    Beiträge
    1

    Expect und Bash mischen

    Hallo Leute, ich wollte ein Script erstellen, dass sich per SSH auf einem linuxserver anmeldet.
    Jetzt gibt es drei Möglichkeiten die er nach Möglichkeit automatisch abfangen soll

    1. er will ein password - Passwort wird übergeben
    2. er fragt ob der Server in die Liste der bekannten hosts aufgenommen werden soll - yes
    3. er fragt nach einer passphrase des keys auf dem Server.

    Ich hatte mal folgendes angefangen was so nicht funktioniert. Könnt ihr mir weiter helfen?
    Am Ende soll er eine bestimmte Aktion ausführen. Zum Beispiel ein Verzeichnis löschen.

    Code:
    #!/usr/bin/expect /bin/bash
    set pass [lindex $argv 0]
    set pass [lindex $argv 1]
    for servername in Server1 Server2 Server3
    do
            echo "loesche auf $servername"
            spawn ssh <user>@$servername 'rm -r ~/exp'
                    expect "Password:" {send "$pass\r"}
                    expect "Are you sure you want to continue connecting (yes/no)?" {send "yes\r"}
                    expect "phrase" {send "$phrase\r"}

  2. #2
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    977
    Hi Fraenker,

    expect ist ein nützliches Tool. IMHO aber auch wirklich die letzte Möglichkeit die ich verwenden würde, also nur dann, wenn es wirklich sein muss. Grundsätzlich ist expect auch eher aufwändig.

    In Deinem Fall würde ich mal grundsätzlich zu schlüsselbasierter SSH-Anmeldung greifen. Der Hostkey muss auch nur einmal pro neuem Host akzeptiert werden. Eine Passphrase für einen SSH-Key kann man auch leer lassen, so dass diesbezüglich keine Abfrage kommt.

    Daneben kann man den SSH-Client auch mit einer Vielzahl von Optionen steuern. Z. B. könnte man, wenn man das nützliche Sicherheitsmerkmal "HostKeys" wirklich nicht verwenden möchte, es abschalten hiermit:

    Code:
    ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null USERNAME@HOSTNAME
    Mehr zu den Optionen unter
    Code:
    man ssh_config
    fork();
    Geändert von fork (22.02.17 um 08:24 Uhr)

Ähnliche Themen

  1. Telnet mit expect in datei umleiten
    Von JasonPat im Forum Linux Allgemein
    Antworten: 0
    Letzter Beitrag: 06.10.10, 12:51
  2. Wie kann man mehr als 256 Zeichen in expect eingeben?
    Von byron1778 im Forum Anwendungen Allgemein, Software
    Antworten: 0
    Letzter Beitrag: 07.05.08, 16:45
  3. expect: Autologin per telnet
    Von SatanicSurfer im Forum Anwendungen Allgemein, Software
    Antworten: 2
    Letzter Beitrag: 03.02.06, 00:49
  4. expect: reguläre ausdrücke?
    Von amun im Forum Anwendungen Allgemein, Software
    Antworten: 1
    Letzter Beitrag: 28.07.04, 16:21
  5. kde-themes mischen
    Von farion im Forum Windowmanager
    Antworten: 2
    Letzter Beitrag: 28.05.03, 16:40

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •