Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
admin_grundlagen:ssh [2020/04/17 12:42] ingo_wichmann [Syntax sshd prüfen] |
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> | ||
| - | command="/usr/bin/who",no-agent-forwarding,no-X11-forwarding,no-port-forwarding ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHBqUtiLsRTLKquoVXKwhrPRD92CzaN9EOkVEfWoHfdC nutzer26@notebook26 | + | restrict,command="/usr/bin/who" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHBqUtiLsRTLKquoVXKwhrPRD92CzaN9EOkVEfWoHfdC nutzer26@notebook26 |
| </file> | </file> | ||
| ==== mit Match ==== | ==== mit Match ==== | ||
| Zeile 159: | Zeile 180: | ||
| </file> | </file> | ||
| + | <file txt ~/.ssh/authorized_keys> | ||
| + | restrict,port-forwarding ssh-rsa AAAAB3NzaC1yc2EAXXXXXXXXXXXXXXXXXXXXXXXXX | ||
| + | </file> | ||
| ===== Agent-Forwarding nutzen ===== | ===== Agent-Forwarding nutzen ===== | ||
| ssh -A notebook17 | ssh -A notebook17 | ||