Nota: questo è un obiettivo d’esame RHCSA 7 e un obiettivo d’esame RHCE 7.
Presentazione
Invece di connettersi tramite login/password a un host remoto, SSH consente di utilizzare l’autenticazione basata su chiave. Per configurare l’autenticazione basata su chiave, sono necessari due server virtuali/fisici che chiameremo server1 e server2.
Procedura di configurazione
Sul server1, creare un utente user01 con password user01:
# useradd user01 # passwd user01 Changing password for user user01. New password:your passwordRetype new password:your passwordpasswd: all authentication tokens updated successfully.
Sul server2, creare lo stesso utente con password user01:
# useradd user01 # passwd user01 Changing password for user user01. New password:your passwordRetype new password:your passwordpasswd: all authentication tokens updated successfully.
Sul server1, connetti come questo nuovo utente:
# su - user01
Genera una coppia privata/pubblica per l’autenticazione basata su chiave (qui la chiave rsa con 2048 bit e nessuna passphrase):
[user01@server1 ~]$ ssh-keygen -b 2048 -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/user01/.ssh/id_rsa): return Created directory '/home/user01/.ssh'. Enter passphrase (empty for no passphrase): return Enter same passphrase again: return Your identification has been saved in /home/user01/.ssh/id_rsa. Your public key has been saved in /home/user01/.ssh/id_rsa.pub. The key fingerprint is: 6d:ac:45:32:34:ac:da:4a:3b:4e:f2:83:85:84:5f:d8 user01@server1.example.com The key's randomart image is: +--[ RSA 2048]----+ | .o | | ... | | . o .o . | |. o E . * | | o o o S = | | o + . + | | .+.o . | | .+= | | .oo | +-----------------+
Sempre su server1, copia la chiave pubblica su server2.
[user01@server1 ~]$ ssh-copy-id -i .ssh/id_rsa.pub user01@server2.example.com The authenticity of host 'server2.example.com (192.168.1.49)' can't be established. ECDSA key fingerprint is 67:79:67:88:7f:da:31:49:7b:dd:ed:40:af:ae:b6:ae. Are you sure you want to continue connecting (yes/no)? yes /bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys user01@server2.example.com's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'user01@server2.example.com'" and check to make sure that only the key(s) you wanted were added.
Sul server2, modificare il file /etc/ssh/sshd_config e impostare le seguenti opzioni:
PasswordAuthentication no PubkeyAuthentication yes
Nota: non esitare a configurare un accesso alla console virtuale su server2, evitando di reinstallare il server fisico/virtuale se qualcosa va storto.
Riavvia il servizio sshd:
# systemctl restart sshd
Tempo di prova
Sul server1 come user01, connettersi al server2:
[user01@server1 ~]$ ssh server2.example.com
Nota 1: questa configurazione può essere eseguita anche per l’account root.
Nota 2: utilizzare le opzioni -v, -vv o -vvv per ottenere alcune informazioni di debug.
Risorse addizionali