Files
it-know-how/Linux/SSH Verbindung in Linux.md
T
2026-09-28 17:37:46 +02:00

3.3 KiB

Um dich per SSH zwischen zwei Linux-Rechnern im Heimnetzwerk zu verbinden, gehst du so vor:


1. SSH-Server installieren und aktivieren

Auf dem Rechner, zu dem du dich verbinden möchtest (Zielrechner):

sudo apt update && sudo apt install openssh-server -y   # Ubuntu/Debian
sudo systemctl enable ssh
sudo systemctl start ssh

Auf Fedora/RHEL/Arch:

sudo dnf install openssh-server -y   # Fedora
sudo pacman -S openssh               # Arch
sudo systemctl enable sshd
sudo systemctl start sshd

Status prüfen:

systemctl status ssh

oder

systemctl status sshd

2. IP-Adresse des Zielrechners herausfinden

Auf dem Zielrechner:

ip a

oder

hostname -I

Beispielausgabe: 192.168.178.42


3. Verbindung vom Quellrechner herstellen

Auf dem Rechner, von dem du zugreifen willst:

ssh benutzername@192.168.178.42

Dabei:

  • benutzername = Benutzerkonto auf dem Zielrechner
  • 192.168.178.42 = IP-Adresse des Zielrechners im Heimnetz

Beim ersten Mal wirst du gefragt, ob du den Host-Fingerprint akzeptieren willst → yes. Danach gibst du dein Passwort ein.


4. (Optional) Passwortlose Anmeldung mit SSH-Key

Falls du dich ohne Passwort anmelden willst:

Auf dem Quellrechner:

ssh-keygen -t ed25519

(oder rsa falls gewünscht, einfach Enter drücken, um Standardpfad ~/.ssh/id_ed25519 zu nutzen)

Dann den öffentlichen Schlüssel auf den Zielrechner kopieren:

ssh-copy-id benutzername@192.168.178.42

Danach kannst du dich einloggen ohne Passwort:

ssh benutzername@192.168.178.42

👉 Soll ich dir ein kurzes Beispiel-Setup mit zwei Testbenutzern schreiben, das du direkt im Heimnetz nachmachen kannst?


5. SSH-Tunnel für lokale Datenbankzugriffe

Mit einem lokalen SSH-Tunnel (-L) wird ein Port auf dem eigenen Rechner an einen Zielhost und Zielport weitergeleitet, die aus Sicht des SSH-Servers erreichbar sind:

ssh -L <lokaler-port>:<zielhost>:<zielport> <benutzer>@<ssh-server>

Beispiel für PostgreSQL:

ssh -L 15432:127.0.0.1:5432 benutzername@vm.example.org

Danach kann ein lokaler Client über 127.0.0.1:15432 auf PostgreSQL zugreifen. Die Verbindung verläuft dabei so:

Datenbank-Client auf dem eigenen Rechner
        |
        | 127.0.0.1:15432
        v
SSH-Tunnel zur VM
        |
        | 127.0.0.1:5432 aus Sicht der VM
        v
PostgreSQL auf der VM

<zielhost> wird aus Sicht der VM aufgelöst. Wenn PostgreSQL in einem Docker-Container läuft, kann das je nach Setup beispielsweise 127.0.0.1, ein Docker-Service-Name oder eine Container-IP sein. Eine Container-IP wie 172.19.0.2 sollte nicht dauerhaft vorausgesetzt werden, weil sie sich nach dem Neuerstellen des Containers ändern kann. Siehe auch DBeaver PostgreSQL via SSH-Tunnel und Docker.

Adressen nicht verwechseln

hostname -I gibt alle Adressen des Rechners aus. Darunter können sich auch Docker-Bridge-Adressen befinden. Die Ausgabe zeigt nicht, welche Adresse für einen bestimmten Dienst die richtige ist:

10.2.0.4     Adresse der VM im Azure-Netzwerk
172.19.0.1   Docker-Bridge-Gateway
172.19.0.2   möglicherweise eine Container-IP

Die tatsächlich passende Adresse und der passende Port sollten mit ss, docker inspect, nc oder psql geprüft werden.