GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Mehrere Befehle in Sshpass?

Geschlossen. Diese Frage ist off-topic. Antworten werden derzeit nicht akzeptiert.

Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie für Unix &Linux Stack Exchange relevant ist.

Vor 2 Jahren geschlossen.


Verbessern Sie diese Frage

Gibt es eine Möglichkeit, die mehreren Befehle in sshpass zu verwenden , ich habe es mit unterschiedlichen Kombinationen versucht, aber es wird ein Fehler ausgegeben.

$ sudo sshpass -p $password ssh -t -oStrictHostKeyChecking=no [email protected]$ipaddress << EOF
  command_one
  command_two
  command_three
EOF

Was ist der richtige und genaue Befehl, bitte geben Sie mir wenn möglich ein Beispiel.

Akzeptierte Antwort:

Ihre Lösung funktioniert mit oder ohne sshpass, wenn sie bei Ihnen nicht funktioniert, liegt wahrscheinlich ein anderes Problem vor.

Beachten Sie auch, dass Sie immer jede Variable in Anführungszeichen setzen sollten.

Außerdem sollten Sie stricthostkeychecking nicht leichtfertig deaktivieren. Wenn sich Ihr Hostschlüssel häufig ändert, ist Ihr Server wahrscheinlich kompromittiert

Hier sind einige Möglichkeiten, wie Sie Ihr Ziel erreichen können:

Verwenden Sie ein Befehlstrennzeichen (; , && , || )

sshpass -p "$password" ssh -t -oStrictHostKeyChecking=no "[email protected]" 'command_one; command_two; command_three'

Verwendung eines Hier-Dokuments (Einfaches Anführungszeichen EOF, um alle Variablen/Befehlsersetzungen auf dem Remote-Host erweitern zu lassen):

sshpass -p "$password" ssh -t -oStrictHostKeyChecking=no "[email protected]" <<EOF
  command_one
  command_two
  command_three
EOF

Verwendung einer separaten Datei:

file.sh

command_one
command_two
command_three

Dann wie folgt ausführen:

cat file.sh | sshpass -p "$password" ssh -t -oStrictHostKeyChecking=no "[email protected]"

Verwendung eines SSH-Tunnels:

sshpass -p "$password" ssh -f -L 3306:localhost:3306 "[email protected]" sleep 300 # This will open a tunnel to the remote host and hold it open for 5 minutes
ssh -T "[email protected]" 'command_one'
ssh -T "[email protected]" 'command_two'
ssh -T "[email protected]" 'command_three'

Linux
  1. SSH-Passwortautomatisierung in Linux mit sshpass

  2. Wie sende ich Stdout an mehrere Befehle?

  3. Ssh – Mehrere ähnliche Einträge in der Ssh-Konfiguration?

  4. Wie gebe ich ein Passwort für mehrere Windows ein?

  5. Ssh – SCP über mehrere Hosts?

19 Gängige SSH-Befehle in Linux mit Beispielen

SSH-Befehle in Linux mit Verwendungsbeispielen

Ausführen von Befehlen auf Remote-Linux-Systemen über SSH

N SSH-Client, der Befehle an mehrere Terminals dupliziert?

11 Nützliche „ssh“- und „scp“-Befehle unter Linux

Wie führe ich automatisch Befehle bei der SSH-Anmeldung aus?