Come aggiungere chiavi SSH su Ubuntu 20.04

Come aggiungere chiavi SSH su Ubuntu 20.04

Imposta un accesso sicuro senza password al tuo server Ubuntu remoto usando le chiavi SSH

SSH è un protocollo di rete client-server sicuro che aiuta un computer client a connettersi e comunicare con un server remoto. La connessione SSH garantisce che i comandi che vengono digitati nel terminale vengano inviati al server remoto tramite un canale crittografato.

Esistono due tipi di meccanismi di autenticazione utilizzati per connettersi al server remoto, l'autenticazione basata su password (soggetto ad attacchi Brute-force) e l'autenticazione basata su chiavi SSH (che è molto sicura).

Nell'autenticazione basata su chiave SSH, viene generata una coppia di chiavi sul computer client, denominata chiave pubblica e chiave privata. Una copia di questa chiave pubblica è resa disponibile sul server remoto. Quando un client invia una richiesta di connessione al server, il server genera una stringa casuale e la crittografa utilizzando la chiave pubblica. Questa stringa può essere decrittografata solo utilizzando la chiave privata disponibile sul computer client. Questo metodo garantisce l'accesso al server solo da parte dei client che contengono la chiave privata.

In questa guida vedremo come configurare le chiavi SSH sul server Ubuntu 20.04 LTS.

Verifica se hai una chiave SSH esistente sul tuo computer

Per verificare se esiste già una coppia di chiavi SSH sul tuo computer, digita questo comando nel tuo terminale.

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

Se il comando precedente restituisce no such file or directoryo no matches found, significa che la coppia di chiavi SSH non esiste.

Se disponi di una coppia di chiavi SSH esistente, puoi utilizzare la stessa coppia di chiavi per accedere a due server remoti oppure puoi anche creare una coppia di chiavi diversa con un nome diverso. Passiamo al passaggio successivo e vediamo come generare chiavi SSH per entrambi i casi.

Creazione di chiavi SSH su un computer client

Per generare una nuova coppia di chiavi SSH sul tuo computer, digita il comando come mostrato di seguito.

ssh-keygen

Per impostazione predefinita, le chiavi SSH sono a 2048 bit. Per una maggiore sicurezza, se vuoi generare chiavi SSH con bit più alti, usa il seguente comando.

ssh-keygen -b 4096

Se il comando viene eseguito correttamente, sullo schermo verrà visualizzato il seguente messaggio.

generazione di una coppia di chiavi rsa pubblica/privata.
Inserisci il file in cui salvare la chiave (/home/harshit/.ssh/id_rsa):

Ora, se non disponi di una coppia di chiavi SSH esistente sul tuo computer Enter, premi semplicemente , ma se disponi di una chiave SSH esistente, salva la chiave con un nome file diverso come mostrato di seguito.

Inserisci il file in cui salvare la chiave (/home/tuo_nome/.ssh/id_rsa): /home/tuo_nome/.ssh/id_rsa_xxx

Sostituire xxxalla fine del nome del file con un nome appropriato, come mostrato di seguito e premere Enter.

Inserisci il file in cui salvare la chiave (/home/tuo_nome/.ssh/id_rsa): /home/tuo_nome/.ssh/id_rsa_client_1

Il prossimo prompt ti chiederà di inserire una passphrase di lunghezza arbitraria, garantirà una sicurezza a due livelli sul tuo dispositivo. 

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

L'inserimento di questa passphrase assicurerà che anche se una persona ottiene l'accesso alla tua chiave privata, non sarà in grado di accedere al tuo server remoto senza questa passphrase.

Una volta completato l'intero processo, sullo schermo viene visualizzato il seguente messaggio.

Come aggiungere chiavi SSH su Ubuntu 20.04

Le chiavi SSH sono state generate sul tuo sistema. Ora è il momento di copiare la chiave pubblica sul server remoto.

Copiare la chiave pubblica sul server Ubuntu remoto

Il metodo più semplice e veloce per copiare la chiave pubblica sul server remoto consiste nell'utilizzare l' ssh-copy-idutilità. Ma se questa utility non è disponibile sul tuo computer per qualche motivo, puoi anche utilizzare altri metodi forniti in questa sezione.

Utilizzo dell'utilità ssh-copy-id

L' ssh-copy-idutilità è disponibile per impostazione predefinita sul tuo computer Ubuntu che copia la chiave pubblica dal tuo dispositivo nella directory appropriata del tuo computer Ubuntu remoto.

Per copiare la chiave pubblica ssh, digita semplicemente il comando nel tuo terminale, come mostrato di seguito.

ssh-copy-id [email protected]

Sostituisci usernamee hostnamenel comando precedente con il nome utente e il nome host del tuo server.

Il seguente messaggio apparirà sul tuo terminale se ti stai connettendo al tuo host per la prima volta, digita yese premi Enter.

Impossibile stabilire l'autenticità dell'host "172.105.XX.XX (172.105.XX.XX)".
L'impronta digitale della chiave ECDSA è xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx.
Sei sicuro di voler continuare a connetterti (sì/no)? 

Ora l' ssh-copy-idutility cercherà il file con il nome id_rsa.pubche contiene la chiave SSH pubblica. Una volta completato il processo di scansione, ti verrà chiesto di inserire la password del tuo server remoto, come mostrato di seguito. Digita la password e premi Enter.

/usr/bin/ssh-copy-id: INFO: tentativo di accedere con le nuove chiavi, per filtrare quelle già installate
/usr/bin/ssh-copy-id: INFO: 1 chiave(e) rimane(e) da installare -- se ti viene chiesto ora è di installare le nuove chiavi
La password di [email protected] :

Una volta aggiunta la chiave, il seguente messaggio apparirà sul tuo terminale come output.

Numero di chiavi aggiunte: 1
Ora prova ad accedere alla macchina, con: "ssh ' [email protected] '" e controlla per assicurarti che siano state aggiunte solo le chiavi che desideri.

Nel caso tu abbia più chiavi SSH sul tuo computer client, per copiare la chiave pubblica appropriata sul tuo computer remoto, digita il comando nel modello mostrato di seguito.

ssh-copy-id -i id_rsa_xxx.pub [email protected]

Suggerimento

Non dimenticare di mettere .pub alla fine del nome del file mentre digiti nel terminale.

Copia della chiave pubblica con il metodo delle tubazioni

Digitare il seguente comando nel terminale se l' ssh-copy-idutilità non è disponibile. Questo comando può sembrare un po' più lungo ma funziona in modo appropriato.

cat ~/.ssh/id_rsa.pub | ssh [email protected]_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Sostituisci remote_usernamee server_ip_addresscon il tuo nome utente e indirizzo IP.

Se hai più chiavi SSH disponibili sul tuo computer, sostituisci il file id_rsa.pubcon la chiave SSH pubblica di tua scelta. Ad esempio, id_rsa_client_1.pub.

Digitare la password dell'utente remoto quando richiesto e premere Enter.

[email protected]'s password:

Una volta digitata la password, il id_rsa.pubfile verrà copiato nel authorized_keysfile del server remoto.

Copia manuale della chiave pubblica

Utilizzare questo metodo quando non si ha accesso al sistema remoto tramite l'autenticazione con password.

Apri il id_rsa.pubfile usando il catcomando nel terminale. Puoi anche aprirlo da un editor di testo, lo scopo è solo quello di copiare il contenuto del file.

cat ~/.ssh/id_rsa.pub

Il contenuto del file sarà simile a quello mostrato di seguito.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH [email protected] _PC

Ora accedi al tuo server remoto e incolla il contenuto copiato usando il comando mostrato di seguito. Sostituisci il above_stringcon il contenuto copiato.

echo above_string >> ~/.ssh/authorized_keys

Configurazione di più chiavi SSH (opzionale)

Questo passaggio è per le persone che hanno la configurazione di più chiavi SSH sul proprio computer client. Salta questa sezione se hai una sola configurazione della chiave SSH.

Per gestire più chiavi SSH, ora creeremo un configfile all'interno della .sshdirectory utilizzando il comando mostrato di seguito.

cd ~/.ssh
vim config

Digita iper entrare in modalità comando e digita i dettagli di più host, come mostrato nell'esempio seguente:

Host remote-ubuntu-server
HostName 172.105.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_1

Host remote-ubuntu-server
HostName 172.106.XX.XX
User root
IdentityFile ~/.ssh/id_rsa_client_2

Allo stesso modo, digita i dettagli di altri server remoti e le loro chiavi. Una volta completato il processo, premere Esce :wqper salvare ed uscire.

Ora i processi successivi sono gli stessi per avere chiavi SSH singole o multiple sul computer client.

Accedi al tuo server remoto usando le chiavi SSH

Una volta completato il processo di copia della tua chiave pubblica, accedi al tuo server remoto digitando il comando come mostrato di seguito.

ssh [email protected]_ip_address

Se hai fornito la passphrase durante la generazione della coppia di chiavi, ti verrà chiesto di inserirla. Una nuova sessione si aprirà al termine del processo di autenticazione.

Ora hai configurato correttamente l'autenticazione basata su chiavi SSH sul tuo server remoto. Ma l'autenticazione basata su password è ancora attiva sul tuo server, questo significa che il tuo server remoto è ancora soggetto ad attacchi di forza bruta.

Quindi ora disattiveremo completamente il meccanismo di accesso basato su password dal nostro server remoto.

Disabilita il meccanismo di accesso basato su password

Prima di apportare modifiche, assicurati che l'utente root o qualsiasi utente abilitato a sudo per il tuo account remoto abbia accesso al tuo server utilizzando il sistema di autenticazione basato su chiave SSH. Questo passaggio bloccherà o disabiliterà completamente l'accesso basato su password, quindi è fondamentale che almeno un utente con privilegi di root abbia accesso al server tramite la chiave SSH.

Accedi al tuo server Ubuntu remoto e digita il comando mostrato di seguito.

sudo vim /etc/ssh/sshd_config
  • Press Esc, /e il tipo di 'PasswordAuthentication' e successo enter
  • Ora premi ie modifica il valore di "PasswordAuthentication yes" in "PasswordAuthentication no".
  • Premi Esce ripeti la procedura sopra per trovare "ChallengeResponseAuthentication", "UsePAM" e modifica anche i loro valori no.
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Una volta che tutti i valori sono impostati su no, premere Esc, digitare :wqe premere enter.

Per attivare tutte le modifiche riavviare il sshservizio utilizzando il comando sottostante.

sudo systemctl restart ssh

Ora apri una nuova finestra di terminale sul tuo computer e verifica che l'autenticazione della tua chiave SSH funzioni correttamente prima di chiudere la sessione corrente.

Una volta completato il processo di verifica, chiudi tutte le sessioni in esecuzione.

Ora abbiamo configurato con successo l'autenticazione basata su chiave SSH sul nostro server Ubuntu 20.04. Ora nessuno può accedere al tuo server utilizzando un meccanismo di accesso basato su password. 


Come copiare e incollare su Chromebook

Come copiare e incollare su Chromebook

La prima cosa che potresti chiederti mentre passi a un Chromebook è come fare le cose di base, il tipo di cose che avevi sul palmo della tua mano nel tuo sistema operativo precedente. Copiare e incollare è una di queste funzioni fondamentali che devi usare prima o poi.

Come fare un test di digitazione su Linux con tt

Come fare un test di digitazione su Linux con tt

Nell'era moderna della tecnologia, la dattilografia è diventata una delle attività più comuni per molte professioni. Imparare a digitare più velocemente con precisione può aiutarti a fare più cose nello stesso lasso di tempo.

Il Wi-Fi non funziona su Ubuntu? Ecco come risolverlo

Il Wi-Fi non funziona su Ubuntu? Ecco come risolverlo

Ubuntu è famoso per la sua robustezza e relativamente meno errori. Ma non è senza problemi, di sicuro. Uno di questi problemi è con il suo driver Wi-Fi. Potresti accendere il tuo sistema solo per scoprire che il tuo Wi-Fi non funziona.

Come creare e scansionare codici QR su Chromebook

Come creare e scansionare codici QR su Chromebook

I codici di risposta rapida, o codici QR in breve, sono codici a barre avanzati che contengono più informazioni rispetto a un codice a barre tradizionale. Questi codici sono bidimensionali, consentendoti di scansionarli verticalmente o orizzontalmente.

Come installare e rimuovere i pacchetti in Arch Linux

Come installare e rimuovere i pacchetti in Arch Linux

Vuoi installare pacchetti su Arch Linux ma non sai come fare? Molte persone affrontano questo problema quando migrano per la prima volta dalle distribuzioni basate su Debian ad Arch. Tuttavia, puoi facilmente gestire i pacchetti sul tuo sistema basato su Arch utilizzando i gestori di pacchetti.

10+ migliori estensioni GNOME per Ubuntu 20.04

10+ migliori estensioni GNOME per Ubuntu 20.04

Molte delle estensioni popolari come Gno-Menu, Extended Gestures non funzionano con Ubuntu 20.04. Quindi, ecco un elenco delle migliori estensioni GNOME funzionanti

Come installare Spotify su Linux

Come installare Spotify su Linux

Spotify è uno dei più grandi servizi di streaming musicale in circolazione. Ha client nativi sia per dispositivi mobili (Android e iOS) che desktop (Mac e Windows).

9 comandi di base per iniziare con Linux

9 comandi di base per iniziare con Linux

Le guide pratiche di Linux spesso si aspettano che tu esegua determinate operazioni nel terminale, il che all'inizio può sembrare intimidatorio. Ma non preoccuparti; questo cheat sheet del comando Linux coprirà il processo di apertura di un terminale e l'emissione di alcuni comandi utili.

5 migliori app di trasferimento file Wi-Fi da Ubuntu ad Android

5 migliori app di trasferimento file Wi-Fi da Ubuntu ad Android

Un meccanismo come FTP, trasferimento file peer-to-peer, trasferimento Wi-Fi ti farà risparmiare tempo se condividi spesso file tra il tuo Android e Ubuntu.

Come spostare file Linux con il comando Mv

Come spostare file Linux con il comando Mv

Anche se probabilmente sai già come spostare un file in Linux utilizzando il browser di file della GUI, potresti chiederti se c'è un comando di spostamento nel terminale che ti consente di spostare rapidamente i file in directory diverse. Il comando mv è quello che desideri ed è facile da usare con la sua sintassi semplice e alcuni flag di sicurezza opzionali.