GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come generare e configurare chiavi SSH su CentOS 7

Introduzione

Secure Shell (SSH ) è un protocollo crittografato utilizzato dagli utenti Linux per connettersi ai propri server remoti.

In genere, i client possono accedere ai propri server in due modi:utilizzando l'autenticazione basata su password o l'autenticazione basata su chiave pubblica.

Si consiglia vivamente di utilizzare le chiavi SSH per l'autenticazione, come alternativa più sicura alle password.

Questo tutorial ti guiderà attraverso i passaggi su come generare e configurare chiavi SSH su CentOS 7. Tratteremo anche la connessione a un server remoto usando le chiavi e la disabilitazione dell'autenticazione della password .

Prima di iniziare

1. Verifica la presenza di chiavi esistenti

Prima di qualsiasi installazione, è consigliabile verificare se ci sono chiavi esistenti sui computer client.

Apri il terminale ed elenca tutte le chiavi pubbliche memorizzate con il seguente comando:

ls -l ~/.ssh/id_*.pub

L'output informa su eventuali chiavi generate attualmente sul sistema. Se non ce ne sono, il messaggio ti dice che non può accedere a /.ssh/id_*.pub , poiché non esiste un file o una directory di questo tipo.

2. Verifica che SSH sia installato

Per verificare se il pacchetto è installato, esegui il comando:

ssh -V

Se hai già SSH, l'output ti dice quale versione è in esecuzione. Attualmente, l'ultima versione è OpenSSH 8.0/8.0p1 .

Passaggi per la creazione di chiavi SSH su CentOS

Fase 1:crea una coppia di chiavi SSH

1. Inizia accedendo alla macchina di origine (server locale) e creando una coppia di chiavi RSA a 2048 bit usando il comando:

ssh-keygen -t rsa

Se desideri rafforzare le misure di sicurezza, puoi creare una chiave a 4096 bit aggiungendo il flag -b 4096:

ssh-keygen -t rsa -b 4096

2. Dopo aver inserito il comando, dovresti vedere il seguente prompt:

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

3. Per salvare il file nella directory suggerita, premi Invio . In alternativa, puoi specificare un'altra posizione.

4. Successivamente, il prompt continuerà con:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Sebbene la creazione di una passphrase non sia obbligatoria, è altamente consigliabile.

5. Infine, l'output si concluderà specificando le seguenti informazioni:

Your identification has been saved in home/your_username/.ssh/id_rsa.
Your public key has been saved in home/your_username/.ssh/id_rsa.pub.
The key fingerprint is:
KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk
[email protected]
The key's randomart image is:
+------[RSA 3072]-------+
|       .oo.            |
|        +o+.           |
|      + +.+            |
| o  +          S .     |
|      .    E  .   . =.o|
|    .  +       .   [email protected]|
|        +   .     oo*=O|
|   oo            . .+o+|
|                 o=ooo=|
+------ [SHA256] ------+

Ora devi aggiungere la chiave pubblica al server CentOS remoto.

Passaggio 2:copia la chiave pubblica sul server CentOS

Puoi copiare la chiave SSH pubblica sul server remoto utilizzando diversi metodi:

  1. utilizzando lo script ssh-copy-id
  2. utilizzando Copia protetta (scp)
  3. copiare manualmente la chiave

Il metodo più rapido e semplice consiste nell'utilizzare ssh-copy-id . Se l'opzione è disponibile, si consiglia di utilizzarla. Altrimenti, prova uno degli altri due indicati.

Copia chiave pubblica utilizzando ssh-copy-id

1. Inizia digitando il seguente comando, specificando l'account utente SSH e l'indirizzo IP dell'host remoto:

ssh-copy-id [email protected]_host

Se è la prima volta che il tuo computer locale accede a questo specifico server remoto, riceverai il seguente output:

The authenticity of host '104.0.316.1 (104.0.316.1)' can't be established.
ECDSA key fingerprint is KYg355:gKotTeU5NQ-5m296q55Ji57F8iO6c0K6GUr5:PO1iRk.
Are you sure you want to continue connecting (yes/no)? yes

2. Conferma la connessione:digita e premi Invio .

3. Una volta individuata la id_rsa.pub key creato sulla macchina locale, ti chiederà di fornire la password per l'account remoto. Digita la password e premi Invio .

4. Una volta stabilita la connessione, aggiunge la chiave pubblica sul server remoto. Questo viene fatto copiando il ~/.ssh/id_rsa.pub nel ~/.ssh del server remoto directory. Puoi individuarlo sotto il nome authorized_keys .

5. Infine, l'output indica il numero di chiavi aggiunte, insieme a chiare istruzioni su cosa fare dopo:

Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

Copia chiave pubblica utilizzando la copia protetta

1. Innanzitutto, imposta una connessione SSH con l'utente remoto:

ssh [email protected]_host

2. Quindi, crea il ~/.ssh directory e le authorized_keys file:

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

3. Usa il chmod comando per modificare il permesso del file:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

chmod 700 rende il file eseguibile , mentre chmod 600 consente all'utente di leggere e scrivere il file.

4. Ora apri una nuova sessione di terminale, sul computer locale.

5. Copia il contenuto da id_rsa.pub (la chiave pubblica SSH) alle authorized_keys precedentemente create file sul server CentOS remoto digitando il comando:

scp ~/.ssh/id_rsa.pub [email protected]_host:~/.ssh/authorized_keys

Con questo, la chiave pubblica è stata archiviata in modo sicuro sull'account remoto.

Copia chiave pubblica manualmente

1. Per aggiungere manualmente la chiave SSH pubblica alla macchina remota, devi prima aprire il contenuto da ~/.ssh/id_rsa.pub file:

cat ~/.ssh/id_rsa.pub

2. Come nell'immagine seguente, la chiave inizia con ssh-rsa e termina con il nome utente del computer locale e il nome host della macchina remota:


3. Copia il contenuto del file, come ti servirà in seguito.

4. Quindi, nella finestra del terminale, connettersi al server remoto su cui si desidera copiare la chiave pubblica. Utilizzare il comando seguente per stabilire la connessione:

ssh [email protected]_host

5. Crea una directory~/.ssh e chiavi_autorizzate file sul server CentOS con il seguente comando:

mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys

6. Modifica i permessi dei file digitando:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

7. Quindi, apri authorized_keys file con un editor di tua preferenza. Ad esempio, per aprirlo con Nano, digita:

nano authorized_keys

8. Aggiungi la chiave pubblica, precedentemente copiata nel passaggio 2 di questa sezione, in una nuova riga in (sotto il contenuto esistente).

9. Salva le modifiche e chiudi il file.

10. Infine, accedi al server per verificare che tutto sia impostato correttamente.

Fase 3:connettiti al server remoto utilizzando le chiavi SSH

Dopo aver completato i passaggi precedenti (creazione di una coppia di chiavi RSA e copia della chiave pubblica sul server CentOS), sarai in grado di connetterti all'host remoto senza digitare la password per l'account remoto.

Tutto quello che devi fare è digitare il seguente comando:

ssh [email protected]_host

Se non hai specificato una passphrase durante la creazione della coppia di chiavi SSH, accederai automaticamente al server remoto.

Altrimenti, digita la passphrase che hai fornito nei passaggi iniziali e premi Invio .

Una volta che la shell conferma la corrispondenza della chiave, aprirà una nuova sessione per la comunicazione diretta con il server.

Passaggio 4:Disattiva l'autenticazione tramite password

Sebbene tu sia riuscito ad accedere al server CentOS senza dover fornire una password, ha ancora un sistema di autenticazione basato su password in esecuzione sulla macchina. Questo lo rende un potenziale bersaglio per attacchi di forza bruta.

Dovresti disabilitare completamente l'autenticazione della password seguendo i passaggi descritti.

1. Utilizzando le chiavi SSH, accedi al server CentOS remoto che dispone dei privilegi di amministratore:

ssh [email protected]_host

2. Quindi, apri il file di configurazione del demone SSH utilizzando un editor di testo a tua scelta:

sudo nano /etc/ssh/sshd_config

3. Cerca la seguente riga nel file:

PasswordAuthentication yes

4. Modifica la configurazione cambiando il yes valore a no . Pertanto, la direttiva dovrebbe essere la seguente:

PasswordAuthentication no

5. Salvare il file ed uscire dall'editor di testo.
6. Per abilitare le modifiche, riavvia sshd servizio usando il comando:

sudo systemctl restart sshd.service

7. Verificare che la connessione SSH al server funzioni ancora correttamente. Apri una nuova finestra di terminale e digita il comando:

ssh [email protected]_host

Cent OS
  1. Come impostare le chiavi SSH

  2. Configurare le chiavi SSH su CentOS 7 - Processo passo dopo passo?

  3. Come configurare le chiavi SSH su CentOS 8

  4. Come configurare le chiavi SSH su Ubuntu 16.04

  5. Come configurare le chiavi SSH su Ubuntu 18.04

Come configurare le chiavi SSH su Debian 9

Come configurare le chiavi SSH su Debian 10

Come configurare le chiavi SSH – Sistema operativo Windows?

Come generare una chiave SSH in CentOS 8

Come configurare la chiave SSH su un server Plesk

Come configurare le chiavi SSH su Debian 11 Linux