Ricerca nel sito web

Come configurare l'autenticazione senza password SSH su RHEL 9


Abbreviazione di Secure Shell, SSH è un protocollo di rete sicuro che crittografa il traffico tra due endpoint. Consente agli utenti di connettersi e/o trasferire file in modo sicuro su una rete.

SSH viene utilizzato principalmente dagli amministratori di rete e di sistema per accedere e gestire in modo sicuro risorse remote come server e dispositivi di rete su una rete. Utilizza metodi di crittografia avanzati come AES e algoritmi di hashing come SHA-2 e ECDSA per crittografare il traffico scambiato tra un client e un sistema remoto.

SSH implementa due metodi di autenticazione; Autenticazione basata su password e autenticazione con chiave pubblica. Quest'ultimo è preferibile poiché offre una migliore sicurezza utilizzando l'autenticazione con chiave pubblica che protegge il sistema dagli attacchi di forza bruta.

Tenendo presente questo, dimostreremo come configurare l'autenticazione basata su chiave SSH su RHEL 9.

Configurazione del laboratorio di test

Ecco come appare la nostra configurazione

  • Un sistema Linux/UNIX (basato su Ubuntu o RHEL) su cui genereremo la coppia di chiavi. Per questa guida utilizzo la distribuzione Ubuntu.
  • Un'istanza di RHEL 9 (questo cloud deve essere un VPS on-premise o cloud).

Passaggio 1: generare la coppia di chiavi SSH ECDSA

Accedi al tuo sistema Linux e genera la coppia di chiavi SSH come segue. In questa guida genereremo la coppia di chiavi utilizzando l'algoritmo ECDSA che fornisce crittografia e sicurezza migliori.

Pertanto, per generare la coppia di chiavi ECDSA, esegui il comando:

ssh-keygen -t ecdsa

Il comando ti guiderà attraverso una serie di istruzioni.

Per impostazione predefinita, la coppia di chiavi viene salvata nella directory home dell'utente all'interno della directory ~/.ssh. Puoi accettarlo come destinazione della coppia di chiavi SSH premendo INVIO sulla tastiera, altrimenti puoi specificare il percorso preferito. In questa guida, abbiamo deciso di seguire il percorso predefinito.

Successivamente, ti verrà richiesto di fornire una passphrase. Si tratta fondamentalmente di una password che ti verrà richiesto di fornire quando stabilisci una connessione con il sistema RHEL 9 remoto. Fornisce un ulteriore livello di protezione oltre alla crittografia offerta dalle chiavi SSH.

Tuttavia, se il tuo piano è automatizzare i processi tramite la protezione SSH o configurare l'autenticazione senza password, è consigliabile lasciare questo campo vuoto. E quindi, lasceremo questo vuoto premendo, ancora una volta, INVIO.

Di seguito è riportato l'output del comando runtime.

Puoi dare un'occhiata alla coppia di chiavi SSH usando il comando ls come mostrato.

ls -l ~/.ssh

id_ecdsa è la chiave privata mentre id_ecdsa.pub è la chiave pubblica. La chiave privata dovrebbe rimanere sempre segreta e non dovrebbe essere condivisa o divulgata a nessuno. D'altra parte, sei libero di condividere il pubblico con qualsiasi sistema remoto a cui desideri connetterti.

Passaggio 2: copiare la chiave SSH pubblica su RHEL 9 remoto

Il passaggio successivo consiste nel copiare la chiave pubblica nell'istanza RHEL 9 remota. Puoi farlo manualmente o utilizzando lo strumento da riga di comando ssh-copy-id. Poiché quest'ultimo è molto più semplice e comodo da usare, invocatelo utilizzando la seguente sintassi.

ssh-copy-id user@rhel-9-server-IP

Nel nostro caso, il comando sarà il seguente dove tecmint è l'utente di accesso normale e 192.168.254.129 è l'indirizzo IP dell'utente remoto.

ssh-copy-id [email 

Digita sì per continuare la connessione. Quindi fornire la password dell'utente remoto e premere INVIO.

La chiave pubblica verrà copiata nel file authorized_keys nella directory ~/.ssh della directory home dell'utente remoto. Una volta copiata la chiave, ora puoi accedere all'istanza remota di RHEL 9 utilizzando l'autenticazione con chiave pubblica.

NOTA: in RHEL 9, l'accesso root su SSH è disabilitato o negato per impostazione predefinita. Questo per buone ragioni: impedisce a un utente malintenzionato di accedere utilizzando l'account root che gli garantirà tutti i privilegi sul sistema. Pertanto la copia della chiave pubblica nel sistema RHEL come root avrà esito negativo.

Abilita l'accesso root in RHEL 9

Se è necessario accedere come root, è necessario modificare la configurazione SSH predefinita come segue.

sudo vim /etc/ssh/sshd_config

Successivamente, imposta l'attributo PermitRootLogin su yes, salva le modifiche ed esci dal file.

Per applicare le modifiche apportate, riavviare il servizio SSH.

sudo systemctl restart ssh

Passaggio 3: verificare l'autenticazione della chiave pubblica SSH

Ora confermiamo l'autenticazione con chiave pubblica. Per fare ciò, accedi come segue.

ssh [email 

Questa volta non ti verrà richiesta una password e passerai direttamente alla shell RHEL 9 remota come mostrato. Potresti anche voler verificare la presenza del file authorized_keys come menzionato in precedenza.

ls -l ~/.ssh 

Puoi anche visualizzare il file della chiave pubblica crittografica utilizzando il comando cat.

cat ~/.ssh/authorized_keys

Sul desktop Linux su cui abbiamo generato le chiavi SSH, viene generato un file chiamato known_hosts nella directory ~/.ssh. Contiene l'impronta digitale di tutti i server remoti a cui il sistema si è connesso.

In questa guida, abbiamo configurato con successo l'autenticazione basata su chiave SSH su RHEL 9. Il tuo feedback è molto gradito.