Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux:ssh [2025/05/08 13:33] swelinux: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 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:~/.ssh
-scp public_key.pub user@server:~/.ssh+
 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/Host) vorangestellt.+bzw. ein `user@server` (Server/Host) vorangestellt.*
  
 ## 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 Augapfel+**Verteilt wird ausschließlich der public key! Der private key wird gehütet, wie der eigene Augapfel!**
  
  
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: ssh-copy-id -i ~/.ssh/mykey user@server user@client: ssh-copy-id -i ~/.ssh/mykey user@server
 ``` ```
 +`-i ~/.ssh/mykey` macht hier den Unterschied.
  
-Dabei wird der public key auf den Server transferiert und dort in folgender Datei hizugefügt:+Dabei wird der public key auf den Server transferiert und dort der Datei `authorized_keys` **hizugefügt**:
  
  
Line 92: Line 95:
 user@server:~/.ssh cat id_rsa.pub >> authorized_keys user@server:~/.ssh cat id_rsa.pub >> authorized_keys
 ``` ```
 +Hier geht es um das `cat id_rsa.pub >> authorized_keys`.
  
-## Einloggen+## Einloggen nach dem Schlüssel-Transfer
  
 ### Fall 1: Du hast keinen individuellen Namen gewählt. ### Fall 1: Du hast keinen individuellen Namen gewählt.
Line 119: Line 123:
 sich über einen Alias einzuloggen. sich über einen Alias einzuloggen.
  
-Datei`config`+Schreibe eine Konfiguration in die Datei `~/.ssh/config` auf dem **Client**.
  
 ``` ```
Line 137: Line 141:
 wählen) wählen)
  
-## Möglichkeit zum Log-In per Passwort deaktivieren+## Möglichkeit zum Log-In per Passwort deaktivieren in /etc/ssh/sshd_config
  
-Datei`/etc/ssh/sshd_config`+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 `/etc/ssh/sshd_config`
  
 ``` ```
Line 146: Line 152:
 ``` ```
  
-Anschließend noch `sshdneu 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 sshd+sudo systemctl restart ssh
 ``` ```
  
-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)**, **Units**, **Systemzuständen** und **Konfigurationen**
 +
 +Häufige Befehle
 +|Befehl | Aktion |
 +|--|--|
 +|`systemctl start <dienst>` | Startet einen Dienst|
 +|`systemctl stop <dienst>` | Stoppt einen Dienst|
 +|`systemctl restart <dienst>` | Startet einen Dienst neu|
 +|`systemctl status <dienst>` | Zeigt den Status eines Dienstes an|
 +|`systemctl enable <dienst>` | Aktiviert einen Dienst für den automatischen Start beim Booten|
 +|`systemctl disable <dienst>` | Deaktiviert einen Dienst|
 +
 +#### 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:
 +
 +**`/var/log/auth.log`** – Diese Datei wird auf Debian-basierten Systemen wie Ubuntu verwendet und enthält Authentifizierungsereignisse, einschließlich fehlgeschlagener SSH-Anmeldeversuche.
 +
 +
 +Du kannst die fehlgeschlagenen Anmeldeversuche mit folgendem Befehl anzeigen:
 +
 +```bash
 +grep "Failed password" /var/log/auth.log
 +```
 +
 +Geht auch mit `journalctl` verwendet:
 +
 +```bash
 +journalctl -u ssh --grep "Failed password"
 ``` ```