Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| linux:ssh [2025/04/26 13:42] – swe | linux:ssh [2025/12/20 14:53] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ## tl;dr | ## tl;dr | ||
| + | **Erzeugen des private-public-key Paares auf dem Client** | ||
| ``` | ``` | ||
| - | # Erzeugen des private-public-key Paares auf dem Client | + | ssh-keygen -t rsa |
| - | | + | ``` |
| + | **Übertragen des public(!)-key auf den Server in den .ssh Ordner** | ||
| - | # Übertragen des public(!)-key auf den Server in den .ssh Ordner | + | Variante 1: Linux zu Linux |
| - | # Variante 1: Linux | + | Hier Transport und Übertragung nach authorized_keys in einem Rutsch |
| - | # Hier Transport und Übertragung nach authorized_keys in einem Rutsch | + | ``` |
| - | ssh-copy-id user@server | + | ssh-copy-id user@server |
| + | ``` | ||
| + | Variante 2: Windows zu Linux | ||
| - | # Variante 2: Windows | + | Hier erst Transport und händisches Übertragung nach authorized_keys |
| - | # Hier erst Transport und händisches Übertragung nach authorized_keys | + | ```scp public_key.pub user@server: |
| - | scp public_key.pub user@server: | + | cat id_rsa.pub >> authorized_keys |
| - | cat id_rsa.pub >> authorized_keys | + | |
| ``` | ``` | ||
| Line 26: | Line 29: | ||
| aufgelistet. | aufgelistet. | ||
| - | Bitte beachten: Um zu wissen, ob wir uns gerade auf dem Client oder dem | + | *Bitte beachten: Um zu wissen, ob wir uns gerade auf dem Client oder dem |
| Server befinden, sind den Befehlen jeweils ein `user@client`(Client) | Server befinden, sind den Befehlen jeweils ein `user@client`(Client) | ||
| - | bzw. ein `user@server` (Server/ | + | bzw. ein `user@server` (Server/ |
| ## Client | ## Client | ||
| Line 45: | Line 48: | ||
| - Der public key: `id_rsa.pub` (.pub wie public ;) | - Der public key: `id_rsa.pub` (.pub wie public ;) | ||
| - | Verteilt wird ausschließlich der public key! Der private key wird gehütet, wie der eigenen | + | **Verteilt wird ausschließlich der public key! Der private key wird gehütet, wie der eigene |
| Line 55: | Line 58: | ||
| ## Schlüssel-Transfer | ## Schlüssel-Transfer | ||
| + | Der public key muss zum Server transferiert werden | ||
| - | ### Variante 1: Der public key muss zum Server transferiert werden | + | ### Variante 1: Linux zu Linux |
| - | + | ||
| - | Hierfür wird folgender Befehl genutzt: | + | |
| ``` | ``` | ||
| Line 64: | Line 66: | ||
| ``` | ``` | ||
| - | Solltest du einen individuellen Namen für die Schlüssel erstellt haben, | + | Solltest du einen **individuellen** Namen für die Schlüssel erstellt haben, |
| nutzt du | nutzt du | ||
| Line 70: | Line 72: | ||
| user@client: | user@client: | ||
| ``` | ``` | ||
| + | `-i ~/ | ||
| + | |||
| + | Dabei wird der public key auf den Server transferiert und dort der Datei `authorized_keys` **hizugefügt**: | ||
| - | Dabei wird der public key auf den Server transferiert und dort im Order | ||
| - | ``` | ||
| - | user@server: | ||
| - | ``` | ||
| - | der Datei | ||
| ``` | ``` | ||
| user@server: | user@server: | ||
| ``` | ``` | ||
| - | hinzugefügt. | ||
| ### Variante 2: Sorgenkind Windows | ### Variante 2: Sorgenkind Windows | ||
| Line 96: | Line 95: | ||
| user@server: | user@server: | ||
| ``` | ``` | ||
| + | Hier geht es um das `cat id_rsa.pub >> authorized_keys`. | ||
| - | ## Einloggen | + | ## Einloggen |
| ### Fall 1: Du hast keinen individuellen Namen gewählt. | ### Fall 1: Du hast keinen individuellen Namen gewählt. | ||
| Line 122: | Line 122: | ||
| Falls dir der Befehl `ssh user@server` noch zu lang ist, ist es möglich, | Falls dir der Befehl `ssh user@server` noch zu lang ist, ist es möglich, | ||
| sich über einen Alias einzuloggen. | sich über einen Alias einzuloggen. | ||
| + | |||
| + | Schreibe eine Konfiguration in die Datei `~/ | ||
| ``` | ``` | ||
| Line 139: | Line 141: | ||
| wählen) | wählen) | ||
| - | ## Möglichkeit zum Log-In per Passwort deaktivieren | + | ## Möglichkeit zum Log-In per Passwort deaktivieren |
| + | |||
| + | Selbst wenn du ein Passwort nach allen Sicherheitsregeln erstellt hast, ist es immer **noch sicherer** gar keine Anmeldung per Passwort zuzulassen. | ||
| + | |||
| + | Konfiguriere hierfür die Datei `/ | ||
| ``` | ``` | ||
| Line 146: | Line 152: | ||
| ``` | ``` | ||
| - | Anschließend noch `sshd` neu starten: | + | #### Anschließend noch sshd neu starten: |
| + | Vorsicht: In Ubuntu wird ein Alias namens `ssh` verwendet, um `sshd` anzusprechen. Muss man wissen. | ||
| ``` | ``` | ||
| - | sudo systemctl restart | + | sudo systemctl restart |
| ``` | ``` | ||
| - | Falls es je nach Linux kein `sshd` gibt, verwende `systemctl` | + | Falls es je nach Linux kein `ssh` gibt, verwende `sshd` |
| ``` | ``` | ||
| Line 162: | Line 169: | ||
| ``` | ``` | ||
| sudo systemctl restart ssh.service | sudo systemctl restart ssh.service | ||
| + | ``` | ||
| + | #### ssh stoppen | ||
| + | ``` | ||
| + | sudo systemctl stop ssh.socket | ||
| + | sudo systemctl stop ssh.service | ||
| + | ``` | ||
| + | |||
| + | ### Exkurs ssh vs sshd sowie systemctl | ||
| + | |||
| + | #### systemctl | ||
| + | - `systemctl` ist ein Kommandozeilenwerkzeug zur Verwaltung von `systemd`, dem standardmäßigen **Init-System** vieler moderner Linux-Distributionen. | ||
| + | - `systemd` ermöglicht Steuerung von **Diensten (Services)**, | ||
| + | |||
| + | Häufige Befehle | ||
| + | |Befehl | Aktion | | ||
| + | |--|--| | ||
| + | |`systemctl start < | ||
| + | |`systemctl stop < | ||
| + | |`systemctl restart < | ||
| + | |`systemctl status < | ||
| + | |`systemctl enable < | ||
| + | |`systemctl disable < | ||
| + | |||
| + | #### ssh vs sshd | ||
| + | |||
| + | - **Ubuntu** und **Debian** verwenden `ssh` für den Client und `ssh` auch für den Dienst | ||
| + | - **CentOS**, **Fedora**, **Arch Linux**, und **OpenSUSE** verwenden `sshd` für den Dienst | ||
| + | |||
| + | Der `ssh`-Client-Befehl bleibt in allen Distributionen gleich, aber der Dienstname kann entweder `ssh` oder `sshd` sein. | ||
| + | |||
| + | ### Infos über ssh | ||
| + | ``` | ||
| + | sudo journalctl -u ssh | ||
| + | ``` | ||
| + | Missglückte Anmeldeversuche per SSH werden in den Logdateien des Systems gespeichert. In den meisten Linux-Distributionen findest du diese Informationen in der Datei: | ||
| + | |||
| + | **`/ | ||
| + | |||
| + | |||
| + | Du kannst die fehlgeschlagenen Anmeldeversuche mit folgendem Befehl anzeigen: | ||
| + | |||
| + | ```bash | ||
| + | grep " | ||
| + | ``` | ||
| + | |||
| + | Geht auch mit `journalctl` verwendet: | ||
| + | |||
| + | ```bash | ||
| + | journalctl -u ssh --grep " | ||
| ``` | ``` | ||