In poche parole, SSH o 'secure shell' è un protocollo crittografato, con il quale è possibile connettersi a un server in remoto e avere accesso alle informazioni ad esso associate. Fornisce un modo molto più sicuro di accedere per fornire un modo sicuro di accedere senza compromettere la sicurezza.
Passaggio 1: creare la coppia di chiavi
Inizieremo con la creazione di una coppia di chiavi sul sistema del client prima con accesso root per tipo nel modo seguente:
$ ssh-keygen
Ciò attiva l'ultimo ssh-keygen nella creazione di una coppia di chiavi RSA a 3072 bit per impostazione predefinita. Puoi aggiungere il flag -b 4086 per generare una chiave più grande. Premi invio e memorizzerà la coppia di chiavi in .ssh/ sottodirectory. Nota che se sei un ospite su un server su cui è già installata una chiave, il prompt ti chiederà se vuoi sovrascriverla o meno. In tal caso, digita "y" per segnalare un sì.
Successivamente, il prompt ti chiederà se vuoi aggiungere una passphrase. Puoi annullare l'iscrizione, ma ti consigliamo di aggiungerne uno. Rafforza il protocollo di sicurezza offrendo un ulteriore livello di protezione da bypassare per un utente non autorizzato.
Passaggio 2: copia la chiave pubblica sul tuo server
Successivamente, dobbiamo trasferire la chiave pubblica sul tuo server Ubuntu.
È possibile utilizzare l'utilità ssh-copy-id utilizzando il seguente comando:
$ ssh-copy-id nomeutente@host_server
Questo dovrebbe fare il trucco in pochi secondi. Se la chiave è stata copiata con successo, vai al terzo passaggio.
A volte capita che il metodo ssh-copy-id fallisca o semplicemente non sia disponibile. In questo caso, dovrai copiarlo tramite SSH basato su password. Puoi farlo usando il comando cat e assicurati di aggiungere il simbolo >> da aggiungere al contenuto invece di sovrascriverlo.
$ gatto ~/.ssh/id_rsa.pub | ssh nomeutente_remoto@indirizzo_ip_server"mkdir -p ~/.ssh && gatto >> ~/.ssh/chiavi_autorizzate"
Se è la prima volta che ti connetti a un nuovo host, il tuo sistema ti mostrerà qualcosa del tipo:
Basta digitare sì e premere il pulsante Invio. Quindi inserisci la password per l'account di accesso utente e la chiave pubblica verrà copiata sul tuo server Ubuntu.
Nel caso in cui l'accesso SSH basato su password ti venga negato per qualche motivo che non puoi definire, puoi sempre semplicemente copiare la chiave pubblica manualmente. Aggiungi il ~/.ssh/authorized_keys a id_rsa.pub file sul tuo computer remoto. Quindi, accedi al tuo account del server remoto e controlla se esiste la directory ~SSH. In caso contrario, digita:
$ mkdir -p ~/.ssh
Ora devi solo aggiungere la chiave:
$ echo stringa_chiave_pubblica >> ~/.ssh/chiave_autorizzate$ chmod -R go= ~/.ssh
Inoltre, assicurati di utilizzare ~SSH/ UTENTE directory e NON la directory principale:
$ chown -R younis:younis ~/.ssh
Passaggio 3: autenticare le chiavi SSH
Il prossimo passo è autenticare le chiavi SSH sul server Ubuntu. Innanzitutto, accedi al tuo host remoto:
$ ssh nomeutente@host_remoto
Ti verrà chiesto di inserire la chiave della passphrase che hai aggiunto nel passaggio 2. Scrivilo e continua. L'autenticazione richiederà del tempo e, una volta completata, verrai indirizzato a una nuova shell interattiva sul tuo server Ubuntu
Passaggio 4: disabilitare l'autenticazione della password
Con le chiavi SSH autenticate, non hai più bisogno del sistema di autenticazione della password.
Se l'autenticazione della password è abilitata sul tuo server, sarà comunque soggetto all'accesso di utenti non autorizzati tramite attacchi di forza bruta. Quindi sarebbe meglio se disabilitassi qualsiasi autenticazione basata su password.
Innanzitutto, controlla se hai attivato l'autenticazione basata su chiave SSH per il radice account su questo server. Se lo è, allora dovresti cambiarlo nell'account di accesso utente privilegiato sudo su questo server, in modo che l'accesso come amministratore sia aperto a te in caso di emergenza o quando il sistema sta affrontando alcune attività sospette.
Dopo aver concesso i privilegi di amministratore al tuo account di accesso remoto, accedi al server remoto con chiavi SSH con privilegi di root o sudo. Quindi usa il seguente comando per accedere al file di configurazione del demone SSH:
$ sudo gedit /etc/ssh/sshd_config
Con il file aperto ora, cerca la directory "PasswordAuthentication" e digita quanto segue per disabilitare l'autenticazione della password e gli accessi SSH basati su password.
$/etc/ssh/sshd_config…
PasswordAuthentication no
…
Per vedere queste modifiche in vigore, dovrai riavviare il servizio sshd utilizzando il seguente comando:
$ sudo systemctl riavvia ssh
Per precauzione, apri una nuova finestra di terminale e verifica che il servizio SSH funzioni correttamente prima di chiudere la sessione corrente.
Con le tue chiavi SSH verificate, dovresti essere in grado di vedere tutto funzionare normalmente. Puoi uscire da tutte le sessioni del server correnti.
Conclusione
Ora che disponi di un sistema di autenticazione basato su chiave SSH, non hai più bisogno del sistema di autenticazione con password vulnerabile, poiché puoi semplicemente accedere senza password. Spero che tu abbia trovato utile questo tutorial.