OpenSSH Public Key Authentifizierung
Für eine Authentifizierung zwischen Client und Server mittels Public-Key-Verfahren ist es notwendig, diese entsprechend zu konfigurieren. Bevor es mit der eigentlichen Konfiguration des Client- Rechners losgeht, sollte SSH noch in der Firewall freigegeben werden.
Client
user@client:~]$ mkdir ~/.ssh user@client:~]$ chmod 700 user@client:~]$ cd .ssh user@client:~/.ssh$ user@client:~/.ssh$ ssh-keygen -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/userkey_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/userkey_rsa. Your public key has been saved in /home/user/.ssh/userkey_rsa.pub. The key fingerprint is: 20:69:c5:c3:e2:2d:a8:09:49:b9:d9:ee:ca:f9:45:5e user@client The key's randomart image is: +--[ RSA 4096]----+ | . o. | | o .o+ | |..+o+o.. | |oo.oo... | |.o. o ES | |o .o . | | . o | |. ... | | +o. | +-----------------+ user@client:~/.ssh$ ls -la insgesamt 20 drwx------ 2 user user 4096 Dez 28 21:07 . drwxr-xr-x 35 user user 4096 Dez 28 21:53 .. -rw------- 1 user user 3326 Dez 28 21:06 userkey_rsa -rw-r--r-- 1 user user 744 Dez 28 21:06 userkey.pub -rw-r--r-- 1 user user 222 Dez 28 21:07 known_hosts
Achtung Sicherheitsrisiko
Sicherheit sollte immer im Vordergrund stehen, der Schlüssel muss unbedingt mit einer Passphrase geschützt werden!
user@client:~/.ssh$ cat userkey_rsa -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,CF61283D9D6B068S4DE189847EBA6D92 ..... -----END RSA PRIVATE KEY-----
Öffentlichen Schlüssel vom Client auf den Server übertragen
Damit der öffentlichen Schlüssel übertragen werden kann, wird vorübergehend noch eine SSH-Verbindung mittels Passwort-Authentifizierung benötigt. Mit dem Werkzeug ssh-copy-id wird das Idendity-File auf den Server kopiert:
user@client:~$ ssh-copy-id -i userkey_rsa.pub serveruser@192.168.2.209 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "userkey.pub" The authenticity of host '192.168.2.209 (192.168.2.209)' can't be established. ECDSA key fingerprint is SHA256:XQ.....ADsA. Are you sure you want to continue connecting (yes/no)? /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 serveruser@192.168.2.209's password: (Hier das Passwort vom Benutzerkonto eintragen.) The authenticity of host '192.168.2.201 (192.168.2.201)' can't be established. ECDSA key fingerprint is SHA256:.... ECDSA key fingerprint is MD5:..... Are you sure you want to continue connecting (yes/no)? -- /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 serveruser@192.168.2.209's password: -- Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'serveruser@192.168.2.201'" and check to make sure that only the key(s) you wanted were added. [user@client:~]$ ssh serveruser@192.168.2.201 [serveruser@server:~]$
Jetzt sollte alles problemlos funktionieren.