Die auf dem Rechner installierten SSH-Keys können mit diesem Befehl gelistet werden:
1 |
for keyfile in ~/.ssh/id_*; do ssh-keygen -l -f "${keyfile}"; done | uniq |
Dabei ist der Algorithmus wichtig, der angezeigt wird. …
- DSA: Ist unsicher und sollte nicht mehr genutzt werden. Größe normal 1024-Bit.
- RSA: Hängt von der Key Größe ab. Bei 3072 oder 4096-Bit ist es ok. Wenn die Größe kleiner ist sollte upgedated werden. Bei 1024-Bit Größe sofort, die ist unsicher. Wird von allen SSH-Clients unterstüzt.
- ECDSA: Nutzt auch Elliptische-Kurven. Hängt von der Zufallszahlen-Generierung des Rechners ab und in dem vertrauen zur NIST. Es können drei Key-Größen erzeugt werden (256,384 und 521-Bits). Wenn benutzt sollte nur 521-Bit Größe verwendet werden. Wird von vielen SSH-Clients benutzt.
- ED25519: Ist Stand heute, der am meisten zu empfehlende public-key Algorithmus. In OpenSSH vorhanden. Noch nicht von allen Clients unterstützt.
Der SSH Key mit ed25519 kann leicht in ein paar Sekunden mit
ssh-keygen -t ed25519
erzeugt werden. Den Parameter unbedingt angeben, sonst wird ein RSA Key mit 2048-Bit erzeugt. Und man kann auch mehrere bzw. älter Keys auf dem Rechner behalten.
Es werden im .ssh Verzeichnis zwei Dateien erzeugt. Der public Key der öffentlich sein kann und der private Key der geheim gehalten werden sollte. Die Key können auch auf der Konsole ausgegeben werden, z.B. der private Key:
cat id_ed25519_key
1 2 3 4 5 6 7 |
-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW QyNTUxOQAAACChzbEZpCPoX/KhtQm3UmeS9U4y8ZVWEzk4hCxywtId6wAAAJiM9w4xjPcO MQAAAAtzc2gtZWQyNTUxOQAAACChzbEZpCPoX/KhtQm3UmeS9U4y8ZVWEzk4hCxywtId6w AAAECXyfg/2qa9hEtVDR5OD3pfztYzt/h3viCPets57OqYRqHNsRmkI+hf8qG1CbdSZ5L1 TjLxlVYTOTiELHLC0h3rAAAAE2JpdGNvaW5Ad2VuemxhZmYuZGUBAg== -----END OPENSSH PRIVATE KEY----- |
Der Public Key ist immer nur 68 Zeichen lang z.B. cat id_ed25519_key.pub
1 |
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKHNsRmkI+hf8qG1CbdSZ5L1TjLxlVYTOTiELHLC0h3r bitcoin@wenzlaff.de |
Hier alle Parameter zum ssh-keygen Programm:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
ssh-keygen --Help unknown option -- - usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] [-N new_passphrase] [-C comment] [-f output_keyfile] ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile] ssh-keygen -i [-m key_format] [-f input_keyfile] ssh-keygen -e [-m key_format] [-f input_keyfile] ssh-keygen -y [-f input_keyfile] ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile] ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile] ssh-keygen -B [-f input_keyfile] ssh-keygen -D pkcs11 ssh-keygen -F hostname [-f known_hosts_file] [-l] ssh-keygen -H [-f known_hosts_file] ssh-keygen -R hostname [-f known_hosts_file] ssh-keygen -r hostname [-f input_keyfile] [-g] ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point] ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines] [-j start_line] [-K checkpt] [-W generator] ssh-keygen -s ca_key -I certificate_identity [-h] [-U] [-D pkcs11_provider] [-n principals] [-O option] [-V validity_interval] [-z serial_number] file ... ssh-keygen -L [-f input_keyfile] ssh-keygen -A ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number] file ... ssh-keygen -Q -f krl_file file ... |