SSH
SSH einrichten für Github
ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
ssh-keygen -t ed25519 -C "your_email@example.com"
# Start SSH-Agent in Background:
eval "$(ssh-agent -s)"
# Add Key to ssh-agent:
ssh-add ~/.ssh/id_ed25519
$ cat ~/.ssh/id_ed25519.pub
# Then select and copy the contents of the id_ed25519.pub file
# displayed in the terminal to your clipboard
# Github -> Settings -> SSH and GPG keys -> New/Add SSH key
ssh -T git@github.com
# Attempts to ssh to GitHub
SSH Cheat Sheet
Verbindung zu einem Server herstellen
ssh user@remote-host # Standardverbindung (Port 22)
ssh -p 2222 user@remote-host # Verbindung über einen anderen Port
ssh -i ~/.ssh/id_rsa user@remote-host # Verbindung mit einem bestimmten Schlüssel
SSH mit Passwortloser Anmeldung
(Key-basierte Authentifizierung)
ssh-keygen -t rsa -b 4096 # SSH-Schlüsselpaar erstellen
ssh-copy-id user@remote-host # Öffentlichen Schlüssel zum Server kopieren (Linux/macOS)
SSH-Config für einfachere Verbindungen
(Linux/macOS: ~/.ssh/config)
nano ~/.ssh/config
# Beispiel:
Host myserver
HostName remote-host
User user
Port 2222
IdentityFile ~/.ssh/id_rsa
ssh myserver # Verbindung per Alias
Dateien mit SCP übertragen
(Secure Copy Protocol)
scp file.txt user@remote-host:/home/user/ # Datei hochladen
scp -r myfolder user@remote-host:/home/user/ # Ordner hochladen
scp user@remote-host:/home/user/file.txt . # Datei vom Server herunterladen
Dateien mit rsync
(Effiziente Dateiübertragung)
rsync -avz file.txt user@remote-host:/home/user/ # Datei synchronisieren
rsync -avz --progress user@remote-host:/home/user/ . # Datei/Ordner mit Fortschritt herunterladen
Remote-Befehle über SSH ausführen
ssh user@remote-host "ls -lah /var/www" # Dateien auf dem Server auflisten
ssh user@remote-host "df -h" # Speicherplatz prüfen
SSH-Tunnel für Portweiterleitung
(Lokale Weiterleitung)
ssh -L 8080:localhost:80 user@remote-host # Port 8080 lokal auf Port 80 des Remote-Hosts umleiten
# Danach im Browser: http://localhost:8080
SSH Reverse-Tunnel
(Fernzugriff auf lokalen Rechner)
ssh -R 9000:localhost:22 user@remote-host # Remote-Host kann auf lokalen SSH-Port zugreifen
# Auf dem Remote-Host dann: ssh -p 9000 user@localhost
SSH-Multiplexing
(Schnellere Verbindungen)
nano ~/.ssh/config
# Beispiel:
Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
ControlPersist 10m
SSH für Windows
(PowerShell & WSL)
ssh user@remote-host # Funktioniert direkt in PowerShell
scp file.txt user@remote-host:/home/user/ # Datei kopieren (wie unter Linux)
wsl ssh user@remote-host # SSH über Windows Subsystem für Linux (WSL)
SSH-Debugging & Fehlersuche
ssh -v user@remote-host # Verbindung mit Debug-Informationen
ssh -vvv user@remote-host # Noch detailliertere Debug-Ausgabe
SSH-Server auf eigenem Rechner aktivieren
sudo systemctl start ssh # SSH-Server starten (Linux)
sudo systemctl enable ssh # SSH-Server beim Boot starten
sudo systemctl status ssh # Status prüfen
sudo ufw allow ssh # Firewall für SSH öffnen (Ubuntu)
SSH einrichten / nutzen (Linux)
Ist SSH installiert?
rpm -qa | grep ssh # RPM-basierte Systeme (z.B. CentOS, Fedora)
dpkg -l | grep ssh # Debian-basierte Systeme (z.B. Ubuntu, Debian)
Welche Pakete sind installiert?
rpm -ql openssh-server # RPM-basierte Systeme
Wie heißt das ausführbare Programm?
rpm -ql openssh-server | grep bin # RPM-basierte Systeme
dpkg -L openssh-server | grep bin # Debian-basierte Systeme
Überprüfung laufender Dienste (Port 22)
ss -tlnp | grep :22
SSH-Dienst starten
systemctl enable [service] # Aktiviert den Dienst beim Systemstart
systemctl start [service] # Startet den Dienst jetzt
Public Key überprüfen
ls -l /etc/ssh/ # Vorhandene Schlüssel auflisten
ssh-keygen -l -f [public key] # Fingerabdruck generieren
Public Key erstellen & übertragen
ssh-keygen -t rsa -b 4096 # Erstellt einen RSA-Schlüsselpaar mit 4096 Bit
ssh-copy-id user@host_IP # Kopiert den öffentlichen Schlüssel auf den Zielhost
SSH-Agent
ssh-add -l # Hinzugefügte Identitäten überprüfen
ssh-add -D # ALLE Identitäten löschen
ssh-add # Standardidentität hinzufügen