SSH le chiavi sono chiavi crittografiche utilizzate per l'autenticazione e la protezione del traffico o della comunicazione tra due server o sistemi. Forniscono un metodo di autenticazione più sicuro rispetto alla tradizionale autenticazione tramite password, soggetta ad attacchi di forza bruta.
In questo tutorial, ti illustreremo come configurare le chiavi SSH su Rocky Linux .
Crea coppia di chiavi RSA SSH in Rocky Linux
Per iniziare a creare un RSA coppia di chiavi sul nostro sistema locale eseguire il seguente comando:
$ ssh-keygen OR $ ssh-keygen -t rsa
Per impostazione predefinita, viene creata una RSA a 2048 bit coppia di chiavi considerata sufficientemente sicura da crittografare il traffico tra il client e l'host remoto.
Facoltativamente, puoi creare un 4096 bit coppia di chiavi più grande e più sicura passando il -b
opzione come segue:
$ ssh-keygen -b 4096
Dopo aver eseguito ssh-keygen comando, seguirà una serie di prompt. Ti verrà prima richiesto di fornire il file in cui verranno salvate le chiavi. Per impostazione predefinita, le chiavi vengono salvate in ~/.ssh
directory nella directory home. Puoi definire il tuo file personalizzato, ma in questa illustrazione andremo con le impostazioni predefinite
Quindi, premi INVIO per salvare le chiavi nel ~/.ssh
directory nella tua directory home.
Se le chiavi SSH esistono già, verrà visualizzato il seguente messaggio e verrà richiesto di sovrascriverlo. Fai attenzione qui. La sovrascrittura delle chiavi significa che l'autenticazione non sarà possibile utilizzando le chiavi precedenti. Selezionando 'Sì' distrugge le chiavi correnti e ne genera di nuove.
Successivamente, ti verrà richiesta una passphrase. Questo è un passaggio facoltativo e fornisce un ulteriore livello di protezione per impedire agli utenti non autorizzati di utilizzare le chiavi per l'autenticazione. Tuttavia, puoi lasciare vuoto questo campo se la tua intenzione è di configurare l'autenticazione SSH senza password tra il tuo sistema locale e altri host remoti.
Per ora, lo lasceremo vuoto e premere INVIO .
Infine, la coppia di chiavi SSH (pubblica e privato chiavi) verranno salvati sul sistema locale nel percorso specificato. Questo è l'output generato dopo l'esecuzione del comando riuscita.
Con le opzioni predefinite, SSH le chiavi vengono salvate nel ~/.ssh
directory all'interno della tua directory home. Per confermare, esegui il comando:
$ ls -la ~/.ssh
- L'id_rsa è la chiave privata e dovrebbe essere mantenuta segreta e confidenziale. La divulgazione può portare a una grave violazione del tuo server remoto.
- Il id_rsa.pub è la chiave pubblica e viene salvata sull'host remoto a cui vuoi connetterti.
Con SSH chiavi create con successo, il passaggio successivo sarà salvare il Pubblico chiave per il sistema remoto pronto per l'autenticazione.
Copia la chiave pubblica SSH su un server Linux remoto
L'ssh-copy-id Il comando fornisce un modo semplice e conveniente per copiare la chiave SSH pubblica su un host remoto. Richiede la seguente sintassi:
$ ssh-copy-id user@remote-host-ip-address
Abbiamo un sistema remoto con un utente normale chiamato bob già configurato. Per copiare la chiave SSH pubblica, esegui il comando:
$ ssh-copy-id [email protected]
Se ti connetti all'host per la prima volta, vedrai il seguente output. Per procedere, digita ‘yes’
e premi INVIO per procedere.
Il comando sonda il tuo sistema locale per la chiave pubblica id_rsa.pub e una volta stabilita la sua presenza, ti chiede la password dell'utente remoto.
Digita la password e premi INVIO . La chiave pubblica viene copiata sull'host remoto in ~/.ssh/authorized_keys
file. Ne parleremo più avanti.
Sul tuo sistema locale, il ~/.ssh/known_hosts
viene creato il file. Questo è un file che contiene le impronte SSH per gli host remoti a cui ti sei connesso.
Per visualizzare il file è sufficiente eseguire il comando:
$ cat ~/.ssh/known_hosts
Connessione a Linux remoto senza password
A questo punto, dovresti essere in grado di accedere all'host remoto senza una password. Per fare un tentativo, prova ad accedere normalmente come faresti.
$ ssh [email protected]
Questa volta verrai immediatamente rilasciato nella shell dell'host remoto.
Come accennato in precedenza, la chiave pubblica viene salvata nelle authorized_keys file sull'host remoto. Puoi confermarlo come mostrato.
$ ls -la ~/.ssh/
Per visualizzare il file, usa il comando cat come segue.
$ cat ~/.ssh/authorized_keys
Disabilita l'autenticazione tramite password SSH
Il SSH l'autenticazione con chiave pubblica è stata impostata correttamente. Tuttavia, l'autenticazione della password è ancora attiva e questo rende il tuo host remoto suscettibile agli attacchi di forza bruta.
Pertanto, si consiglia vivamente di disabilitare l'autenticazione della password. Ora accedi nuovamente all'host remoto utilizzando l'utente root o sudo. Quindi apri sshd_config file di configurazione.
$ sudo vim /etc/ssh/sshd_config
Scorri verso il basso e individua PasswordAuthentication direttiva. Se è stato commentato, decommentalo e impostalo su 'no'
.
PasswordAuthentication no
Salva le modifiche ed esci dal file.
Per applicare le modifiche apportate, riavvia sshd demone come mostrato.
$ sudo systemctl restart sshd
A questo punto, l'autenticazione della password SSH è stata disabilitata sul server remoto e l'unico modo possibile per accedere al server remoto è tramite l'autenticazione a chiave pubblica.
Abbiamo configurato correttamente SSH autenticazione basata su chiave sull'host remoto che consente di accedere senza password. Questo è il modo più sicuro per accedere a host remoti a condizione che la chiave privata rimanga confidenziale e segreta.