SSH public private keys

keywords: SSH, Authentifizierung, Authentication, Schlüsselpaar

Einmalig für sein persönliches Schlüsselpaar

Lokaler persönlicher Rechner (Linux, macOS)

SSH Private Public Schlüsselpaar erstellen

Anmerkungen

Die .ssh/authorized_keys wird sich im Laufe der Zeit füllen.

Ein großes Manko, das Tatu Ylönen, der Erfinder von SSH, erwähnte:

Die Sys-Admins denken nicht daran, nicht mehr benötigte public keys zu löschen. Personen, die ein Unternehmen verlassen haben, können noch Jahre danach mit ihren keys zugreifen.

Es sollte von Anfang an darauf geachtet werden, dass regelmäßig aufgeräumt wird.

Damit das effizient möglich ist, sollten alle public keys am Ende die Mail-Adresse des Mitarbeiters enthalten. Deshalb ist die Nutzung des Parameters "-C" (= comment) wichtig. Dadurch kann die Person gleich identifiziert und zugeordnet werden, ohne zuvor einzelne Schlüssel-Schnipsel o.ä. vergleichen zu müssen.

Passphrase

"2. Passphrase considerations

When creating the SSH key pair, as shown in the following steps, you can choose to either lock your private key with a passphrase or use no passphrase at all.

Adding a passphrase requires the same passphrase to be entered whenever the key pair is used. Not adding a passphrase removes this requirement. For this reason, creating a key pair without a passphrase is more convenient and potentially essential for certain scripts and automation tasks. But it’s also less secure.

If a third-party gains access to a private key without a passphrase they will be able to access all connections and services using the public key.

A good compromise between convenience and security is to generate a separate key pair for each service or connection you want to use, adding a passphrase only for critical services. If you suspect a key has been compromised, simply generate a new pair for that service and remove the less secure key."

https://ubuntu.com/tutorials/ssh-keygen-on-windows#2-passphrase-considerations

Regelmäßig für jeden SSH-Account auf dem jeweiligen Ziel-Server

Ziel-Server (Linux oder OS X)

Public key hinterlegen

Auf jedem Managed Server liegt eine authorized_keys mit den Public Keys der aktuellen Mitarbeiter in folgendem Verzeichnis ab:

~/.ssh/authorized_keys

SSH: Fehlenden oder verlorenen public key nachträglich mit vorhandenem private key erstellen

Erstellen

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

Enter passphrase:

Prüfen

ssh-keygen -l -f ~/.ssh/id_rsa

4096 d6:7b:c7:7a:4f:3c:4d:29:54:62:5f:2c:58:b2:cb:86 ~/.ssh/id_rsa (RSA)

Create a public SSH key from the private key?

https://serverfault.com/questions/52285/create-a-public-ssh-key-from-the-private-key

Alternative

openssl rsa -in wemove -pubout -out wemove.pub2

Use RSA private key to generate public key?

https://stackoverflow.com/questions/5244129/use-rsa-private-key-to-generate-public-key

Diese Ausgabe im Format "-----BEGIN PUBLIC KEY----- ..." wird so allerdings in der ~/.ssh/authorized_keys nicht akzeptiert.

ACHTUNG: Der Kommentar (E-Mail-Adresse) wird nicht mit erstellt!

Man kann ihn aber wohl einfach hinzufügen (weitere Recherche, ob pub file dann immer noch wirklich konsistent ist?):

How do I retrieve the public key from a SSH private key?

https://askubuntu.com/questions/53553/how-do-i-retrieve-the-public-key-from-a-ssh-private-key

RSA vs DSA vs Ed25519

"DSA was deprecated by OpenSSH and is later going to be entirely dropped"

http://security.stackexchange.com/questions/112802/why-openssh-deprecated-dsa-keys

„But I saved the killer argument for the end: man ssh-keygen says that a DSA key has to be exactly 1024 bits long to be compliant with NIST's FIPS 186-2. So although in theory longer DSA keys are possible (FIPS 186-3 also explicitly allows them) you are still restricted to 1024 bits. And if you take the considerations of this [article], we are no longer secure with 1024 bits for either RSA or DSA.“ 

- Never use DSA or ECDSA. 

- Ed25519 is probably the strongest mathematically (and also the fastest), but not yet widely supported. As a bonus, it has stronger encryption (password-protection) of the private key by default than other key types. 

- RSA is the best bet if you can't use Ed25519. 

http://security.stackexchange.com/questions/5096/rsa-vs-dsa-for-ssh-authentication-keys

Generate client keys using the following commands: 

ssh-keygen -t ed25519 -o -a 100 

ssh-keygen -t rsa -b 4096 -o -a 100 

https://stribika.github.io/2015/01/04/secure-secure-shell.html

„Fazit: RSA ist DSA vorzuziehen, da es weniger anfällig für schlechte Zufallsgeneratoren ist. Ansonsten gilt in Sachen Schlüssellänge oder Modulus: 1.024 Bit sind zu wenig.“

http://www.golem.de/news/verschluesselung-was-noch-sicher-ist-1309-101457-6.html

Sehr gute und verständlich geschriebene Einführung in die Möglichkeiten von SSH. Die Möglichkeiten der ~/.ssh/config (Client) und /etc/ssh/sshd_config (Server) sollte man sich näher anschauen:

https://wiki.ubuntuusers.de/SSH/

Gute Anleitungen

ssh-keygen - Generate a New SSH Key

https://www.ssh.com/ssh/keygen

SSH-Key erstellen - so geht's

https://www.heise.de/tipps-tricks/SSH-Key-erstellen-so-geht-s-4400280.html

Recherchieren