Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
lpi1:ssh [2018/10/11 11:11] ingo_wichmann [Server Key aus known_hosts entfernen] |
lpi1:ssh [2025/08/14 12:24] (aktuell) |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | **Todo**: anpassen des Unit-Files bei systemd ((als Default werden alle Prozesse einer proc group bei restart oder stop gekillt. Das ist nicht das, was man bei ssh o.ä. will. | + | ====== 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 | ||
| - | Unit-File nach /etc/systemd/system kopieren und KillMode=process rein | ||
| - | und das Verhalten ist wie früher. | ||
| - | Bei vielen Distris ist das Standard-Unit-File mit | ||
| - | KillMode=control-group. D.h. man müsste immer und überall bei jeder | ||
| - | ssh-Installation diese Änderung machen, wenn man nicht irgendwann ein | ||
| - | doofes Problem haben will)) | ||
| - | ====== ssh ====== | ||
| ===== Einsatzzwecke von ssh ===== | ===== Einsatzzwecke von ssh ===== | ||
| * Fernadministration | * Fernadministration | ||
| Zeile 27: | Zeile 36: | ||
| scp <Datei> <Benutzer>@<Rechner>:/<Verzeichnis> | scp <Datei> <Benutzer>@<Rechner>:/<Verzeichnis> | ||
| Dateien auf andere Rechner ohne lange Pfadangaben ins $HOME-Verzeichnis von <Benutzer> kopieren: | Dateien auf andere Rechner ohne lange Pfadangaben ins $HOME-Verzeichnis von <Benutzer> kopieren: | ||
| - | scp <Datei> <Benutzer>@<Rechner>:<Verzeichnis> | + | scp <Datei> <Benutzer>@<Rechner>: |
| + | ====== Syntax sshd prüfen ====== | ||
| + | Vor dem Neustart des Dienstes die Konfigurationsdatei auf Syntaxfehler prüfen: | ||
| + | sshd -t | ||
| + | oder ausführlicher: | ||
| + | sshd -dddt | ||
| ====== 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 ===== | ||
| - | Server-Name und IP-Adresse aus known_hosts entfernen: | + | Name und IP-Adresse aus known_hosts entfernen: |
| ssh-keygen -R notebook02 | ssh-keygen -R notebook02 | ||
| Zeile 40: | 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 52: | 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 85: | 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-forwanding,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 163: | 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 | ||