TODO
ssh-keygen
erzeugt ein Paar von 1 privatem und 1 öffentlichem Schlüsseln.
Der private Schlüssel muss beim Client und geheim bleiben.
Unter Unix-ähnlichen Betriebssystemen wird er häufig als ~/.ssh/id_rsa
abgelegt.
Der private Schlüssel kann mit einer Passphrase geschützt werden.
Der öffentliche Schlüssel kann beliebig verteilt werden.
Unter Unix-ähnlichen Betriebssystemen wird er häufig als ~/.ssh/id_rsa.pub
abgelegt.
Die damit verschlüsselten Daten können nur mit dem privaten Schlüssel entschlüsselt werden.
Wurde der private Schlüssel mit einer Passphrase geschützt, so ist diese bei der Entschlüsselung
einzugeben.
Wird der öffentliche Schlüssel auf einem Server hinterlegt, kann man sich damit authentifizieren. Der Client weist durch Entschlüsselung einer vom SSH-Server verschlüsselte Informationen nach, dass er den privaten Schlüssel besitzt.
Konfiguration:
/etc/ssh/sshd_config
:
PermitRootLogin no
: verbietet Login des Benutzers root
PasswordAuthentication no
: erlaubt Authentifizierung nur mit öffentlichem Schlüssel.
Dies erhöht die Entropie im Vergleich zu vielen Passwörtern und erschwert somit brute-force
Login-Versuche.~/.ssh/authorized_keys
enthält die für den Login akzeptierten öffentlichen Schlüsseln.
ssh-copy-id <USER_NAME>@<TARGET_HOST>
: überträgt den öffentlichen Schlüssel auf die Zielmaschine und fügt ihn in diese
Datei einssh-agent
Der ssh-agent
hält Passphrases für private Schlüssel im Speicher, so dass sie während dessen
Laufzeit nur einmal eingegeben werden müssen.
$SSH_AGENT_PID
ist eine Umgebungsvariable mit der PID des ssh-agent
ssh-add
: fügt Schlüssel zum Agent hinzussh-add -K <KEY_FILE_NAME>
ssh -A
: Agent Forwarding