CodeGym /Kurse /Docker SELF /Einführung in SSH: Einrichtung von Remote-Zugriff, Verwen...

Einführung in SSH: Einrichtung von Remote-Zugriff, Verwendung von Schlüsseln

Docker SELF
Level 4 , Lektion 3
Verfügbar

Einführung in SSH: Einrichtung von Remote-Zugriff, Verwendung von Schlüsseln

1. Was ist SSH?

Stell dir vor, du bist auf einem Ende des Planeten, und der Server, den du einrichten musst, ist auf dem anderen Ende. Die Arbeit eines IT-Mitarbeiters in der Schule mit Herumrennen zwischen Räumen — das ist definitiv nicht das, was wir wollen. Zum Glück gibt es SSH (Secure SHell) — ein Tool für die Fernverwaltung von Servern.

SSH ist ein Netzwerkprotokoll, das es ermöglicht, sicher auf entfernte Computer zuzugreifen. Die Verbindung erfolgt mit Verschlüsselung, was bedeutet, dass die übertragenen Daten vor fremden Augen geschützt sind. SSH ersetzt veraltete Methoden wie Telnet, die Daten im Klartext übertragen haben (wie eine offene Postkarte).

Vorteile von SSH

  1. Sicherheit. SSH verwendet Verschlüsselung, um Daten vor Abfangen zu schützen.
  2. Flexibilität. Fernverwaltung von Servern, Dateiübertragung, Erstellen von Tunneln — all das ist über SSH möglich.
  3. Plattformübergreifend. Funktioniert unter Linux, Windows (einschließlich WSL) und MacOS.

Jetzt, da du verstehst, warum SSH benötigt wird, lass uns zur Praxis übergehen.


2. SSH-Client-Installation

Fangen wir mit dem Client an, der es ermöglicht, eine Verbindung zu einem Server herzustellen. Wenn du eine moderne Linux-Distribution verwendest, ist der SSH-Client höchstwahrscheinlich bereits installiert. Lass uns das überprüfen:

ssh -V

Du solltest Informationen über die Version des SSH-Clients sehen. Wenn der Befehl nicht gefunden wird, installiere ihn (auf Ubuntu und anderen Debian-basierten Distributionen):

sudo apt update
sudo apt install openssh-client

Auf MacOS ist der SSH-Client vorinstalliert, und wenn du in WSL arbeitest, ist die Installation ähnlich wie bei Linux.


3. Verbindung zu einem Remote-Server über SSH

Die Verbindung zum Server erfolgt mit folgendem Befehl:

ssh username@hostname
  • username — der Benutzername auf dem Remote-Server.
  • hostname — die IP-Adresse oder der Domainname des Servers.

Ein Beispiel für eine Verbindung:

ssh student@192.168.1.10

Wenn alles korrekt eingerichtet ist, fragt das System nach einem Passwort. Nach der Eingabe des Passworts befindest du dich in der Remote-Konsole des Servers. Glückwunsch, du bist auf halbem Weg zur Karriere als "Operator eines Super-Schurken im Hackerfilm".


4. Installation und Konfiguration eines SSH-Servers

Installation des SSH-Servers

Wenn du an einem Server oder einer lokalen Maschine arbeitest, zu der du eine Verbindung herstellen möchtest, musst du den SSH-Server installieren. Auf Ubuntu machst du das so:

sudo apt update
sudo apt install openssh-server

Prüfen wir den Status des SSH-Dienstes:

sudo systemctl status ssh

Du solltest eine Meldung wie active (running) sehen. Wenn der Server nicht läuft, benutze folgendes:

sudo systemctl start ssh
sudo systemctl enable ssh

Jetzt ist der SSH-Server bereit, Verbindungen anzunehmen.


Konfiguration des SSH-Servers

Die Hauptkonfigurationsdatei des SSH-Servers ist /etc/ssh/sshd_config. Um diese zu bearbeiten, benutze einen beliebigen Texteditor, z.B. nano:

sudo nano /etc/ssh/sshd_config

Achte auf die folgenden Parameter:

  • Port 22 — der Port, auf dem SSH läuft.
  • PermitRootLogin no — Verbot der Verbindung für root (es wird empfohlen, no beizubehalten, aus Sicherheitsgründen).
  • PasswordAuthentication yes — Erlaubnis der Verbindung per Passwort.

Nach Änderungen der Parameter starte den SSH-Server neu:

sudo systemctl restart ssh

5. Verwendung der Schlüssel-Authentifizierung

Die Verbindung mit Passwort ist praktisch, aber nicht sicher. Die beste Option ist die Verwendung von SSH-Schlüsseln.

SSH-Schlüssel generieren

Führe auf deinem Client-Computer folgenden Befehl aus:

ssh-keygen

Das Skript fragt nach dem Speicherpfad des Schlüssels (Standard: ~/.ssh/id_rsa). Du kannst Enter drücken, um diesen zu akzeptieren. Danach wirst du nach einer Passphrase gefragt. Es ist besser, diese leer zu lassen, um es einfacher zu machen (aber das ist nicht sehr sicher).

Nach der Ausführung des Befehls werden die Schlüsseldateien erstellt:

  • id_rsa — privater Schlüssel (mach ihn nicht öffentlich, genau wie den Quellcode deines Projekts vor dem Release, besonders wenn er voller technischer Schulden steckt).
  • id_rsa.pub — öffentlicher Schlüssel (diesen kannst du für die Verbindung verwenden).

Übertragung des Schlüssels auf den Server

Verwende den Befehl ssh-copy-id, um den öffentlichen Schlüssel auf den Server zu übertragen:

ssh-copy-id username@hostname

Das fügt deinen öffentlichen Schlüssel in die Datei ~/.ssh/authorized_keys auf dem Server ein. Jetzt kannst du dich ohne Passwort verbinden.

Probiere es aus:

ssh username@hostname

Wenn alles erfolgreich war, wirst du nicht nach einem Passwort gefragt. Dein Leben ist offiziell ein kleines bisschen einfacher geworden.

SSH und WSL

Wenn du mit Windows über WSL arbeitest, kannst du dort ebenfalls SSH verwenden. Öffne das WSL-Terminal und installiere den SSH-Client:

sudo apt update
sudo apt install openssh-client

Die weiteren Schritte sind die gleichen wie bei Linux.


6. Praktischer Teil: SSH auf localhost einrichten

Für die Praxis kannst du eine SSH-Verbindung zwischen zwei Maschinen im selben Netzwerk oder sogar auf deinem eigenen Computer (indem du localhost als Adresse nutzt) einrichten.

  1. Installiere den SSH-Server und Client auf einer Maschine.
  2. Verbinde dich über die lokale Adresse:
ssh your_user@localhost
  1. Richte die Schlüsselverbindung ein, wie oben gezeigt.

Am Ende solltest du eine Verbindung ohne Passwort-Eingabe haben.


7. Arbeit mit SSH-Konfigurationsdateien und Aliasen

Wenn du dich häufig mit verschiedenen Servern verbindest, kannst du dir das Leben erleichtern, indem du eine SSH-Konfiguration in die Datei ~/.ssh/config hinzufügst:

Host myserver
    HostName 192.168.1.10
    User student
    IdentityFile ~/.ssh/id_rsa

Jetzt kannst du dich mit folgendem Befehl verbinden:

ssh myserver

Häufige Fehler und deren Behebung

  1. Fehler "Connection refused". Das bedeutet, dass der SSH-Server auf der entfernten Maschine nicht läuft. Stelle sicher, dass er installiert und gestartet wurde.

  2. Fehler "Permission denied". Entweder hast du ein falsches Passwort eingegeben oder die Schlüssel sind falsch konfiguriert. Überprüfe den Inhalt der Datei ~/.ssh/authorized_keys auf dem Server.

  3. Fehler "No route to host". Überprüfe, ob der Server über das Netzwerk erreichbar ist (nutze ping).


Jetzt bist du mit dem Wissen ausgestattet, wie man SSH einrichtet, Schlüssel verwendet und typische Probleme vermeidet. Es ist ein mächtiges Tool, das überall eingesetzt wird, sei es bei der Serverkonfiguration am Arbeitsplatz oder bei der Verwaltung eines Raspberry Pi zu Hause.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION