Sshpass
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