Vai al contenuto

SSH Chiave Pubblica e Privata

Prerequisiti

  • Un discreto comfort nell'operare dalla riga di comando
  • Un server Linux o workstation con openssh installato
  • Facoltativo: familiarità con i permessi di file Linux e directory

Introduzione

SSH è un protocollo per accedere a una macchina da un'altra, di solito tramite la riga di comando. Con SSH è possibile eseguire comandi su computer e server remoti, inviare file e in genere gestire tutto ciò che si fa da un unico posto.

Quando si lavora con molti server Rocky Linux in varie località o si cerca di risparmiare tempo per accedere a questi server, è necessario utilizzare una coppia di chiavi pubbliche e private SSH. Le coppie di chiavi facilitano l'accesso ai computer remoti e l'esecuzione dei comandi.

Questo documento vi guiderà nella creazione delle chiavi e nell'impostazione dei server per l'accesso con tali chiavi.

Processo per generare le chiavi

I seguenti comandi sono tutti eseguiti dalla riga di comando della workstation Rocky Linux:

ssh-keygen -t rsa

Che mostrerà quanto segue:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

Premete INVIO per accettare la posizione predefinita. Successivamente il sistema mostrerà:

Enter passphrase (empty for no passphrase):

Premete INVIO qui. Infine, vi chiederà di reinserire la passphrase:

Enter same passphrase again:

Premete INVIO un'ultima volta.

Ora avrete una coppia di chiavi pubbliche e private di tipo RSA nella vostra directory .ssh:

ls -a .ssh/
.  ..  id_rsa  id_rsa.pub

È necessario inviare la chiave pubblica (id_rsa.pub) a ogni macchina a cui si intende accedere. Prima di fare ciò, è necessario assicurarsi di poter accedere via SSH ai server a cui si sta inviando la chiave. Questo esempio utilizza tre server.

È possibile accedervi con SSH tramite nome DNS o indirizzo IP, ma in questo esempio si utilizza il nome DNS. I server di esempio sono web, mail e portal. Per ogni server, si effettua l'accesso SSH (i nerd amano usare SSH come verbo) e si lascia aperta una finestra di terminale:

ssh -l root web.ourourdomain.com

Se si riesce a effettuare il login senza problemi su tutti e tre i computer, il passo successivo è inviare la chiave pubblica a ciascun server. Per farlo, utilizzare il comando ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@web.ourdomain.com

Ripetere questa operazione con ciascuna delle tre macchine. Questo popolerà il file authorized_keys su ogni server con la chiave pubblica.

Provare di nuovo a eseguire l'SSH dalla workstation Rocky Linux al server. Non dovrebbe essere richiesta alcuna password.

Directory SSH e sicurezza authorized_keys

Su ciascuno dei computer di destinazione, assicurarsi che vengano applicate le seguenti autorizzazioni:

chmod 700 .ssh/
chmod 600 .ssh/authorized_keys

Author: Spencer Steven

Contributors: Ezequiel Bruni, Ganna Zhyrnova