GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come utilizzare l'autenticazione a chiave pubblica con SSH

Introduzione

Autenticazione con chiave pubblica è un metodo di registrazione sicuro che utilizza SSH. Invece di una password, la procedura utilizza una coppia di chiavi crittografiche per la convalida. Sebbene l'utilizzo di una password complessa aiuti a prevenire attacchi di forza bruta, l'autenticazione a chiave pubblica fornisce forza crittografica e accessi automatizzati senza password.

Questa guida fornisce istruzioni dettagliate su come implementare l'autenticazione a chiave pubblica da zero.

Prerequisiti

  • Accesso alla riga di comando/terminale con privilegi di amministratore.
  • SSH abilitato. Segui le nostre guide per attivare SSH su Linux:Ubuntu 18.04, Debian 9 o 10.
  • Un server locale e remoto.

Utilizzo della chiave SSH per l'autenticazione

L'autenticazione con chiave pubblica SSH prevede quattro passaggi:

1. Genera una chiave privata e una pubblica, nota come coppia di chiavi . La chiave privata rimane sul computer locale.

2. Aggiungi la chiave pubblica corrispondente al server.

3. Il server memorizza e contrassegna la chiave pubblica come approvata.

4. Il server consente l'accesso a chiunque dimostri la proprietà della chiave privata corrispondente.

Il modello presuppone che la chiave privata sia protetta. L'aggiunta di una passphrase per crittografare la chiave privata aggiunge un livello di sicurezza sufficientemente buono per la maggior parte dei casi basati sugli utenti. Ai fini dell'automazione, si applicano le pratiche e il software di gestione delle chiavi poiché la chiave privata rimane non protetta in caso contrario.

Generazione di una coppia di chiavi SSH

Genera la coppia di chiavi SSH sul server locale utilizzando OpenSSH. Le istruzioni di base per Linux, macOS e Windows sono descritte di seguito.

Linux e macOS

1. Apri il terminale (CTRL +ALT +T ).

2. Verifica la presenza di chiavi esistenti con:

ls -l ~/.ssh/id*

Se ci sono già delle chiavi, l'output mostra il contenuto della directory:

La generazione di nuove chiavi sovrascrive quelle correnti per impostazione predefinita. Tuttavia, l'indicazione di un nuovo nome per le chiavi le salva in file diversi.

Se non ci sono chiavi esistenti, l'output indica che la cartella non esiste:

3. Crea la directory usando il comando mkdir per memorizzare la nuova coppia di chiavi:

mkdir ~/.ssh

4. Modifica le autorizzazioni su 700:

chmod 700 ~/.ssh

5. Il seguente comando avvia il generatore di chiavi:

ssh-keygen

L'output stampa un messaggio che indica che il comando è stato eseguito correttamente. Successivamente, il programma chiede dove salvare il file:

La directory e il file predefiniti per l'archiviazione delle chiavi sono /home//.ssh/id_rsa . Se disponi di chiavi esistenti che desideri conservare, inserisci un nuovo nome file. Altrimenti, premi Invio per salvare nella posizione predefinita. Se esistono già chiavi in ​​questa posizione, il programma sovrascrive i dati.

6. Infine, inserisci una passphrase per proteggere la chiave. Premi Invio e conferma ancora una volta la passphrase quando richiesto. La password viene richiesta ogni volta che utilizzi la chiave per l'autenticazione.

7. Infine, il programma stampa le informazioni su dove sono memorizzate le chiavi. Inoltre, anche una stampa digitale e una rappresentazione grafica sulla console.

8. Conferma che le chiavi sono nella directory controllando il contenuto:

 ls -l ~/.ssh/

La directory ora contiene due file:

  • id_rsa è la chiave privata.
  • id_rsa.pub è la chiave pubblica.

Finestre

1. Utilizza la casella di ricerca di Windows per trovare cmd e apri la finestra del prompt dei comandi.

2. Nella richiesta, digitare:

ssh-keygen

Il comando avvia il programma per la generazione della coppia di chiavi.

3. Se imposti una posizione specifica per le chiavi, digita il percorso ora. Altrimenti, premi Invio per salvare le chiavi nel percorso predefinito.

Se le chiavi sono presenti in questa posizione, l'uscita chiede di confermare la sovrascrittura. Digita Y per confermare e premere Invio per continuare la configurazione.

4. Immettere la passphrase per crittografare la chiave privata. Reinserisci la stessa passphrase e premi Invio per completare la generazione della coppia di chiavi.

Configurazione di uno o più utenti SSH/SFTP per la tua chiave

Dopo aver generato una coppia di chiavi, il passaggio successivo consiste nel configurare la macchina server per gli utenti SSH e SFTP per la chiave.

1. Sulla macchina server, controlla se ~/.ssh cartella esiste:

ls -l ~/.ssh/

Se la directory non esiste, crea la cartella:

mkdir ~/.ssh

Quindi, modifica le autorizzazioni con:

chmod 700 ~/.ssh

2. Crea un file chiamato authorized_keys nel ~/.ssh directory:

touch authorized_keys

Modifica le autorizzazioni:

chmod 600 ~/.ssh/authorized_keys

3. Quindi, apri le chiavi_autorizzate file utilizzando un editor di testo. Copia il contenuto della chiave pubblica nelle authorized_keys file. Per più utenti e chiavi, copia ogni nuova chiave su una nuova riga. Salva il file e chiudi.

In Linux, usa questo comando per copiare automaticamente la chiave:

ssh-copy-id <username>@<host>

L'output mostra il numero di chiavi copiate automaticamente sul server insieme ad ulteriori istruzioni.

Per il trasferimento di file tramite SSH esistono più soluzioni:

  • Utilizza SSHFS per Linux, macOS o Windows
  • Utilizza RSync come alternativa a Linux.

Accesso

Dopo aver generato e copiato le chiavi, accedi al tuo server dalla macchina locale usando il seguente comando:

ssh <username>@<host>

Il comando fa apparire una richiesta per inserire la password della chiave privata:

Infine, inserisci la password per sbloccare la chiave:

Una volta verificato, il comando ti connette al server tramite SSH.

Perché dovresti usare l'autenticazione a chiave pubblica con SSH?

L'autenticazione con chiave pubblica è un modo più sicuro e consigliato per connettersi con SSH anziché con una normale password di accesso.

Alcuni vantaggi sono:

  • La coppia di chiavi SSH è più difficile da hackerare. Poiché la maggior parte delle chiavi SSH è lunga almeno 1024 bit, che equivale a una password di 12 caratteri, la connessione è sicura. Per migliorare ulteriormente la sicurezza, aumentare il numero di bit durante la generazione delle chiavi.
  • Il contenuto delle chiavi viene generato utilizzando un algoritmo informatico, rendendole più difficili da prevedere.
  • Solo la macchina in cui risiede la chiave privata ha accesso.
  • L'autenticazione con chiave pubblica non mostra mai il contenuto della chiave privata al server. In caso di compromissione del server, la macchina locale rimane al sicuro.
  • Una password aggiunta alla chiave privata aggiunge l'autenticazione a più fattori.

Ubuntu
  1. Come impostare le chiavi SSH

  2. Ssh - Riceve ancora una richiesta di password con Ssh con l'autenticazione con chiave pubblica?

  3. Come recuperare la chiave pubblica da una chiave privata Ssh?

  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 – Sistema operativo Windows?

Come configurare l'autenticazione SSH senza password su Linux

Come utilizzare una chiave SSH con utenti non root

Come utilizzare l'autenticazione a due fattori con Ubuntu

Come impostare l'autenticazione basata su chiave Ssh per Github utilizzando il file ~/.ssh/config?

Come aggiungere la chiave pubblica SSH al server