↑ ↓ auswählen, Enter öffnen, Esc schließen

SSH

Einzeiler rund um SSH: Schlüssel erzeugen und verteilen, Tunnel aufbauen, Verbindungen debuggen und Dateien sicher übertragen. Die Grundlage für fast jede Arbeit am Server.

20 Einzeiler: 13 harmlos, 7 vorsicht, 0 destruktiv

Einen Befehl nacheinander auf mehreren Servern ausführen

$for h in web1.example.com web2.example.com web3.example.com; do echo "== $h"; ssh -o BatchMode=yes -o ConnectTimeout=5 "$h" 'uptime; df -h /'; done
harmlos

Entfernten Port per SSH-Tunnel lokal verfügbar machen

$ssh -N -L 3307:127.0.0.1:3306 webuser@server.example.com
harmlos

Erfolgreiche SSH-Anmeldungen aus dem Journal anzeigen

#journalctl -u ssh --since "7 days ago" --no-pager | grep 'Accepted'
harmlos

Fingerprint eines SSH-Schlüssels anzeigen

$ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
harmlos

Lokalen Dienst per Reverse-Tunnel auf dem Server bereitstellen

$ssh -N -R 8080:127.0.0.1:3000 webuser@server.example.com
harmlos

Lokales Skript auf einem entfernten Server ausführen

$ssh webuser@server.example.com 'bash -s' < ./check.sh
vorsicht

Öffentlichen Schlüssel aus dem privaten Schlüssel ableiten

$ssh-keygen -y -f ~/.ssh/id_ed25519_server
harmlos

Öffentlichen SSH-Schlüssel auf einen Server übertragen

$ssh-copy-id -i ~/.ssh/id_ed25519_server.pub -p 22 webuser@server.example.com
vorsicht

Passphrase eines SSH-Schlüssels ändern oder setzen

$ssh-keygen -p -f ~/.ssh/id_ed25519_server
vorsicht

Rechte von .ssh und authorized_keys korrigieren

$chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
vorsicht

SOCKS-Proxy über eine SSH-Verbindung aufbauen

$ssh -N -D 1080 webuser@server.example.com
harmlos

SSH-Agent starten und Schlüssel befristet laden

$eval "$(ssh-agent -s)" && ssh-add -t 4h ~/.ssh/id_ed25519_server
harmlos

SSH-Schlüsselpaar mit Ed25519 erzeugen

$ssh-keygen -t ed25519 -a 100 -C "admin@example.com" -f ~/.ssh/id_ed25519_server
harmlos

SSH-Verbindungen mit ControlMaster wiederverwenden

$ssh -o ControlMaster=auto -o ControlPath=~/.ssh/cm-%C -o ControlPersist=10m webuser@server.example.com
harmlos

SSH-Verbindungsprobleme mit ausführlicher Ausgabe analysieren

$ssh -vvv -p 22 webuser@server.example.com
harmlos

sshd-Konfiguration prüfen und SSH-Dienst neu laden

#sshd -t && systemctl reload ssh
vorsicht

Tatsächlich aktive sshd-Einstellungen anzeigen

#sshd -T | grep -Ei '^(port|permitrootlogin|passwordauthentication|pubkeyauthentication|kbdinteractiveauthentication|allowusers|maxauthtries) '
harmlos

Über einen Jumphost auf einen internen Server verbinden

$ssh -J admin@bastion.example.com webuser@10.0.0.12
harmlos

Veralteten Host aus known_hosts entfernen

$ssh-keygen -R server.example.com
vorsicht

Verzeichnis per tar durch SSH auf einen anderen Server kopieren

$tar czf - -C /var/www/vhosts/example.com/httpdocs . | ssh webuser@neuserver.example.com "tar xzf - -C /var/www/vhosts/example.com/httpdocs"
vorsicht

Erst lesen, dann ausführen.

Die Befehle auf myline.de greifen direkt in Server, Dateien und Datenbanken ein. Ein falscher Pfad oder Platzhalter kann Daten unwiderruflich löschen oder einen Server unerreichbar machen.

  • Alle Befehle werden ohne Gewähr bereitgestellt und sind nicht auf jedem System getestet.
  • Vor dem Ausführen verstehen, was ein Befehl tut, und jeden Platzhalter prüfen.
  • Vorher ein Backup anlegen und möglichst zuerst auf einem Testsystem ausprobieren.
  • Die Ausführung erfolgt auf eigene Verantwortung. Eine Haftung für Schäden ist ausgeschlossen, soweit gesetzlich zulässig.