Sshpass

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

SSHpass – Passwort-Automatisierung für SSH

  • SSHpass ist ein Werkzeug, das Passwörter für SSH-Verbindungen automatisch bereitstellt
  • Es umgeht die interaktive Passwortabfrage von SSH und ermöglicht die Automatisierung in Skripten
  • Nützlich für Backup-Skripte, Automatisierung und Batch-Verarbeitung

Grundprinzip

  • SSHpass übergibt das Passwort non-interaktiv an SSH
  • Kann Passwörter aus Kommandozeile, Datei oder Environment-Variable lesen
  • Ermöglicht die vollständige Automatisierung von SSH-Logins

Installation

  • Ubuntu/Debian: sudo apt-get install sshpass
  • CentOS/RHEL: sudo yum install sshpass
  • Arch: sudo pacman -S sshpass

Syntax

sshpass [OPTIONEN] ssh [SSH-OPTIONEN]

Wichtige Optionen

  • -p PASSWORT → Passwort direkt angeben
  • -f DATEI → Passwort aus Datei lesen
  • -e → Passwort aus Environment-Variable lesen
  • -d FD → Passwort aus File-Descriptor lesen

Sicherheitshinweise

Warnung: Passwörter in Kommandozeilen sind unsicher!

  • Kommandozeilen sind in Prozesslisten sichtbar
  • Besser: SSH-Keys verwenden wenn möglich
  • Alternativ: Passwörter in geschützten Dateien speichern

Beispiele

Passwort direkt übergeben

  • sshpass -p 'meinpasswort' ssh user@hostname
 → Übergibt Passwort direkt (unsicher!)

Passwort aus Datei lesen

  • sshpass -f /pfad/zum/passwort.txt ssh user@hostname
 → Liest Passwort aus geschützter Datei

Passwort aus Environment-Variable

  • export SSHPASS='meinpasswort'
  • sshpass -e ssh user@hostname
 → Nutzt Environment-Variable SSHPASS

Mit spezifischen SSH-Optionen

  • sshpass -p 'passwort' ssh -o StrictHostKeyChecking=no -p 2222 user@hostname
 → Deaktiviert Host-Key-Check und verwendet Port 2222

In Skripten verwenden

  • sshpass -p 'passwort' ssh user@hostname 'ls -la /tmp'
 → Führt Kommando auf Remote-Host aus

SCP mit SSHpass

  • sshpass -p 'passwort' scp datei.txt user@hostname:/pfad/
 → Überträgt Datei mit SCP und Passwort

Alternative: SSH-Keys

Für bessere Sicherheit SSH-Keys verwenden:

  • ssh-keygen -t rsa
  • ssh-copy-id user@hostname
  • ssh user@hostname # Kein Passwort nötig

Fehlerbehandlung

  • Exit-Code 5: Verbindungsfehler
  • Exit-Code 6: Falsches Passwort
  • Exit-Code 1: Allgemeiner Fehler

Typische Anwendungsfälle

  • Automatisierte Backup-Skripte
  • Deployment-Skripte
  • Massen-Updates auf mehreren Servern
  • Monitoring-Skripte
  • CI/CD Pipelines

Aufgaben

  • Installiere SSHpass auf deinem System
  • Teste eine SSH-Verbindung mit Passwort-Übergabe
  • Erstelle eine geschützte Passwort-Datei und teste damit
  • Vergleiche die Sicherheit von SSHpass vs. SSH-Keys
  • Schreibe ein Skript das mehrere Kommandos auf einem Remote-Host ausführt