Im nachfolgenden Beispiel wird als Benutzername yuna und als IP 192.168.0.81 angenommen.
Benutzer (User): yuna
IP vom Server: 192.168.0.81
Um einen ssh-Key zu generieren, melden wir uns auf dem Server an und generieren einen Schlüssel mit dem Befehl:
$ ssh-keygen -m PEM -t rsa -b 4096
$ ssh-keygen -m PEM -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/yuna/.ssh/id_rsa): /home/yuna/id_rsa Created directory '/home/yuna/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/yuna/.ssh/id_rsa Your public key has been saved in /home/yuna/.ssh/id_rsa.pub The key fingerprint is: SHA256:5I0tLZWA4Npi2HtU7s+1jJm7Vh0M/9nuIg1otSnlz1I benutzer@server The key's randomart image is: +------ [RSA 4096] ------+ | _nnnn_ | | dGGGGMMb | | @p~qp~~qMb | | M|@||@) M| | | @,----.JM| | | JS^\__/ qKL | | dZP qKRb | | dZP qKKb | | fZP SMMb | | HZM MMMM | | FqM MMMM | | __| ". |\dS"qML | | | `. | `' \Zq | |_) \.___.,| .' | |\____ )MMMMMP| .' | | `-' `--' hjm | +--------[SHA256]--------+
Kopiere anschliessend den Schlüssel. Passe Username und IP-Adresse an:
$ ssh-copy-id benutzername@192.168.0.81
$ ssh-copy-id yuna@192.168.0.81 The authenticity of host '192.168.0.81 (192.168.0.81)' can't be established. ECDSA key fingerprint is SHA256:vu1+RPGYAaOIS7x6pSg8FL9J7ZoxHCs92HAR3e/k9Ps. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys yuna@192.168.0.81's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'yuna@192.168.0.81'" and check to make sure that only the key(s) you wanted were added.
Windows
Nun übertragen/kopieren wir den privaten Schlüssel id_rsa nach: C:\Users\BENUTZER\.ssh
Achte darauf, bei Windows die Dateierweiterung .txt zu entfernen. Die Datei heisst hier id_rsa und nicht id_rsa.txt
Bei einem Login wird nun der private Schlüssel auf Deinem PC mit dem Schlüssel auf dem Server abgeglichen. Passen die zusammen, wird die Verbindung akzeptiert.
Linux
Hier muss zwingend die Berechtigung vom id_rsa Schlüssel unter ~/.ssh/id_rsa
auf 600 gesetzt werden. Ansonst kommt es zu diesem Vorfall:
$ ssh yuna@192.168.0.81 -p 22 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0770 for '/home/BENUTZER/.ssh/id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "/home/BENUTZER/.ssh/id_rsa": bad permissions yuna@192.168.0.81's password: (...)
Die korrekte Berechtigung setzen wir mittels:
# chmod 600 /home/BENUTZER/.ssh/id_rsa
Falls du mehrere SSH-Keys generieren möchtest, lese hier weiter.