Configurazione dell’autenticazione basata su chiavi per SSH

By | Agosto 14, 2018

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 password
Retype new password: your password
passwd: 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 password
Retype new password: your password
passwd: 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

One thought on “Configurazione dell’autenticazione basata su chiavi per SSH

  1. Pingback: Obiettivi esame RHCSA 7 - prometheusproject

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.