Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| admin_grundlagen:ssh [2020/07/27 14:02] ingo_wichmann [Hop Server] | admin_grundlagen:ssh [2025/08/14 12:24] (aktuell) ingo_wichmann [Syntax prüfen] | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== ssh ====== | ====== ssh ====== | ||
| + | |||
| + | ===== ssh in firewalld freischalten ===== | ||
| + | |||
| + | **Enable firewall rule for ssh.** | ||
| + | |||
| + | sudo firewall-cmd --permanent --add-service=ssh | ||
| + | success | ||
| + | |||
| + | **Reload firewall rules.** | ||
| + | |||
| + | sudo firewall-cmd --reload | ||
| + | success | ||
| + | |||
| + | oder Firewall abschalten: | ||
| + | |||
| + | systemctl stop firewalld.service | ||
| + | |||
| + | |||
| ===== Einsatzzwecke von ssh ===== | ===== Einsatzzwecke von ssh ===== | ||
| * Fernadministration | * Fernadministration | ||
| Zeile 27: | Zeile 45: | ||
| ====== Server Keys ====== | ====== Server Keys ====== | ||
| ===== Fingerprint Hostkey überprüfen ===== | ===== Fingerprint Hostkey überprüfen ===== | ||
| - | ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub | + | ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key.pub | 
| ===== Server Key aus known_hosts entfernen ===== | ===== Server Key aus known_hosts entfernen ===== | ||
| Zeile 36: | Zeile 54: | ||
| ===== Server Keys neu erzeugen ===== | ===== Server Keys neu erzeugen ===== | ||
| - | === Debian === | + | löschen: | 
| rm /etc/ssh/ssh_host_*key* | rm /etc/ssh/ssh_host_*key* | ||
| + | === Debian === | ||
| dpkg-reconfigure openssh-server | dpkg-reconfigure openssh-server | ||
| + | === SuSE / RedHat === | ||
| + | service sshd restart | ||
| ====== Public-Private-Key Authentifizierung ====== | ====== Public-Private-Key Authentifizierung ====== | ||
| Zeile 48: | Zeile 69: | ||
| ===== Public-Key auf anderen Rechner übertragen ===== | ===== Public-Key auf anderen Rechner übertragen ===== | ||
| - | ssh-copy-id -i .ssh/id_rsa.pub nutzer05@notebook06 | + | ssh-copy-id nutzer05@notebook06 | 
| oder von Hand: | oder von Hand: | ||
| ssh nutzer05@notebook06 'mkdir -m 700 ~/.ssh' | ssh nutzer05@notebook06 'mkdir -m 700 ~/.ssh' | ||
| - | ssh nutzer05@notebook06 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub | + | ssh nutzer05@notebook06 'cat >> .ssh/authorized_keys' < ~/.ssh/id_ed25519.pub | 
| - | ssh nutzer05@notebook06 'chmod 400 .ssh/authorized_keys' | + | ssh nutzer05@notebook06 'chmod 600 .ssh/authorized_keys' | 
| ===== Serverseitig Passwortauthentifizierung abschalten ===== | ===== Serverseitig Passwortauthentifizierung abschalten ===== | ||
| - | <file txt /etc/ssh/sshd_config> | + | <file txt /etc/ssh/sshd_config.d/keyonly.conf> | 
| - | UsePAM no | + | |
| - | PasswordAuthentication no | + | |
| - | </file> | + | |
| - | + | ||
| - | Alternativ (CentOS 7) | + | |
| - | <file txt /etc/ssh/sshd_config> | + | |
| UsePAM yes | UsePAM yes | ||
| - | ChallengeResponseAuthentication no | + | KbdInteractiveAuthentication no | 
| PasswordAuthentication no | PasswordAuthentication no | ||
| </file> | </file> | ||
| + | |||
| + | ==== Syntax prüfen ==== | ||
| + | sshd -t | ||
| + | |||
| + | ==== Dienst neu starten ==== | ||
| + | systemctl restart ssh.service | ||
| ===== ssh-agent ===== | ===== ssh-agent ===== | ||
| Schlüssel dem ''ssh-agent'' hinzufügen: | Schlüssel dem ''ssh-agent'' hinzufügen: | ||
| - | ssh-add .ssh/id_dsa | + | ssh-add .ssh/id_rsa | 
| ((Bei openSuSE 11.0 wird der ''ssh-agent'' bei der Anmeldung nur gestartet, wenn das Verzeichnis ''~/.ssh'' existiert: | ((Bei openSuSE 11.0 wird der ''ssh-agent'' bei der Anmeldung nur gestartet, wenn das Verzeichnis ''~/.ssh'' existiert: | ||
| Zeile 81: | Zeile 102: | ||
| ===== Nutzer Zugriff beschränken ===== | ===== Nutzer Zugriff beschränken ===== | ||
| ==== mit authorized_keys command ==== | ==== mit authorized_keys command ==== | ||
| - | //Problem: die Datei ''~/.ssh/authorized_keys'' gehört dem Nutzer, den man einschränken möchte. // | + | //Problem: die Datei ''~/.ssh/authorized_keys'' gehört dem Nutzer, den man einschränken möchte. Mögliche Lösung: AuthorizedKeysFile, AuthorizedKeysCommand und AuthorizedKeysCommandUser // | 
| <file txt ~/.ssh/authorized_keys> | <file txt ~/.ssh/authorized_keys> | ||