Come abilitare gli accessi SSH senza password su Linux

Come abilitare gli accessi SSH senza password su Linux

È un’ottima idea accedere al tuo server SSH senza password. Seriamente, liberatene. Non è necessario utilizzare una password su uno dei servizi più attaccati sui server Linux, giusto? Proteggere un server SSH utilizzando l’autenticazione standard basata su password è una cattiva idea. Gli aggressori possono facilmente forzare le password e quando sono l’unica cosa che si frappone tra un cattivo attore e il tuo server, dovresti assolutamente essere nervoso.

Ecco perché l’autenticazione basata su chiave RSA è molto migliore. Puoi configurare e proteggere il tuo server Linux per consentire l’accesso solo da computer che detengono le chiavi RSA che sono già state accettate. Chiunque altro verrà rifiutato immediatamente. Come ulteriore vantaggio, puoi creare quelle chiavi con o senza password, che dipende interamente da te. Tuttavia, una chiave complessa senza password va bene nella maggior parte dei casi.

Se usi dispositivi Linux anche a casa, hai l’ulteriore vantaggio della praticità. Supponi di voler configurare l’X-forwarding SSH dalla tua workstation Linux al tuo laptop. Vuoi davvero inserire la tua password ogni volta che esegui un programma remoto? Imposta le chiavi SSH e non sarà necessario.

Installa i pacchetti

Ci sono un paio di pacchetti di cui hai bisogno. Probabilmente ne hai già alcuni, ma è una buona idea controllare. I pacchetti sono gli stessi sia sul server che sul client. Tuttavia, c’è anche una buona possibilità che entrambe le macchine siano server e client l’una per l’altra (situazione domestica), quindi potresti voler assicurarti di aver installato questi pacchetti.

Il metapacchetto OpenSSH non è installato per impostazione predefinita sui sistemi Debian o Ubuntu. Se non lo hai già installato, puoi farlo eseguendo il seguente comando:

sudo apt install ssh

Ssh Passwordless Linux 02 Installazione di Openssh

Genera la tua chiave SSH in Linux

È davvero facile generare la tua chiave SSH in Linux. Basta dire a OpenSSH che devi generare la chiave. È anche una buona idea specificare la quantità di bit con il -bflag e il tipo con -t. Una chiave a 4096 bit è la migliore, in quanto fornisce una crittografia più forte.

ssh-keygen -t ed25519

Innanzitutto, l’utilità chiederà dove si desidera memorizzare la chiave. Basta premere Enterper la directory predefinita. Quando richiede una password, lascialo vuoto per una chiave senza password e un’autenticazione senza password. Se vuoi usare una password per la tua chiave, inseriscila qui.

Il tuo computer impiegherà un paio di secondi per generare la tua chiave. Al termine, stamperà una rappresentazione artistica ASCII della tua chiave sul terminale.

Invio della chiave all’host Linux remoto

Per utilizzare la tua chiave, dovrai inviarla al tuo server remoto. OpenSSH ha anche un’altra utility integrata per questo. Digli dov’è la tua chiave e con quale utente sul server associarla.

ssh-copy-id -i ~/.ssh/id_ed25519.pub username@ip_remote_host

Sostituisci ip_remote_hostcon l’effettivo indirizzo IP dell’host remoto, che gestirai tramite SSH. Sostituire usernamecon il nome utente effettivo sull’host remoto.

Ssh Passwordless Linux 04 Copia Ssh ID

È fondamentale utilizzare l’ -iopzione per specificare il file di identità che contiene la chiave pubblica. Se provi a utilizzare la tua chiave SSH senza questa opzione, potresti ricevere un errore.

Ssh Passwordless Linux 05 Copia riuscita

Testare la connessione SSH in Linux

Con la tua chiave SSH nel server remoto, ora puoi verificare se la tua connessione funziona correttamente.

Accedi con il seguente comando:

ssh username@ip_remote_host

L’host remoto effettuerà l’accesso senza richiedere la password dell’account utente.

Ssh Passwordless Linux 06 Accesso senza password

Tuttavia, se hai commesso un errore durante il processo, il demone SSH tornerà automaticamente all’autenticazione della password per il tuo account utente. Ciò ti consente di accedere comunque al tuo server remoto anche se disponi di una chiave RSA non funzionante.

Ssh Passwordless Linux 07 Accesso non riuscito

Configurazione di SSH per bloccare le password

Per la massima sicurezza, devi disabilitare gli accessi con password SSH sul tuo server Linux. Simile all’abilitazione dell’autenticazione a due fattori in SSH, questo impedisce a chiunque di forzare la propria strada nel tuo server.

Ssh Passwordless Linux 08 Esempio a due fattori

È importante assicurarsi di poter accedere in modo affidabile con la chiave SSH prima di eseguire questa operazione, poiché è possibile bloccarsi dal server remoto se si dispone di una chiave malfunzionante.

Puoi trovare il file di configurazione per il tuo demone SSH in “/etc/ssh/sshd_config”. Apri il file sul server usando sudo e il tuo editor di testo preferito. Ad esempio, apri questo file utilizzando nano eseguendo il seguente comando:

sudo nano /etc/ssh/sshd_config

Trova le righe sottostanti premendo Ctrl+ We modificale in modo che assomiglino all’esempio. Rimuovere il commento da entrambe le voci e modificare i valori in no.

PasswordAuthentication no
PermitEmptyPasswords no

Ssh Passwordless Linux 09 Trova l'opzione Nano

PasswordAuthenticationspecifica se utilizzare l’autenticazione tramite password. Lo impostiamo su “no” perché vogliamo utilizzare solo le chiavi SSH.

PermitEmptyPasswordsspecifica se il server consente l’accesso con una password vuota. Non dovresti mai permetterlo, quindi lo impostiamo su “no”.

Ssh Passwordless Linux 10 Aggiorna le impostazioni Sshd

Quindi, trova la riga “UsePAM” e modificala in “no”. Ciò impedirà al demone di utilizzare metodi di autenticazione (password, Kerberos, ecc.) diversi dalle chiavi SSH.

UsePAM no

Ssh Passwordless Linux 11 Disabilita il supporto Pam

Salvare il file premendo Ctrl+ O, quindi Ctrl+ Xe ricaricare il server SSH.

sudo systemctl restart ssh

Ora che hai configurato correttamente il tuo server per utilizzare solo chiavi SSH per l’autenticazione, chiunque tenti di accedere senza una chiave RSA valida verrà immediatamente negato.

Ssh Passwordless Linux 12 Nessun login chiave

Domande frequenti

Ricevo una “Connessione rifiutata” quando invio la mia chiave SSH al mio server Linux. Come posso risolvere questo problema?

Assicurarsi che il server SSH sia in esecuzione sull’host remoto. Puoi verificarlo eseguendo sudo systemctl status ssh. Se il servizio non è in esecuzione, puoi avviarlo con questo comando: sudo systemctl start ssh.

Se sul server è in esecuzione un firewall, assicurarsi che la porta 22 sia aperta. Puoi farlo eseguendo sudo ufw status. Se SSH non è elencato, puoi abilitarlo eseguendo questo comando: sudo ufw allow ssh.

Ricevo un messaggio di errore “Autorizzazione negata (chiave pubblica)” quando tento di accedere. Cosa devo fare?

Questo errore significa che hai configurato il tuo server per utilizzare le chiavi per l’autenticazione, ma stai ancora tentando di accedere con una password. Ciò può essere dovuto a una chiave RSA mancante o a un’impostazione SSH errata. Controlla di aver copiato correttamente la tua chiave pubblica sul server e di aver specificato la chiave pubblica corretta quando ti connetti.

Quando tento di connettermi, ricevo l’errore “Verifica chiave host non riuscita”. Come posso risolvere questo problema?

Questo errore indica che la chiave host del server SSH è cambiata. Può succedere se il server è stato reinstallato. Puoi rigenerare una nuova chiave pubblica e copiarla sull’host remoto. Ripeti i passaggi in questo articolo per rigenerare e aggiungere la nuova chiave al server.

È possibile utilizzare più chiavi SSH sullo stesso server Linux remoto?

Sì. È possibile utilizzare l’ -fopzione in OpenSSH per specificare la chiave esatta che si desidera utilizzare per connettersi a un server remoto. Ad esempio, l’esecuzione ssh -f ~/.ssh/id_rsa_2 username@remote_ip_addressti collegherà al tuo server remoto utilizzando la chiave “id_rsa_2” invece del valore predefinito “id_rsa”.

Tuttavia, è importante notare che questo comando funzionerà solo se il tuo server remoto riconosce già la tua nuova chiave. Devi prima copiarlo sul tuo server remoto usando ssh-copy-id. Analogamente ai passaggi precedenti, puoi eseguire questa operazione tramite password o autenticazione con chiave RSA.

Ricevo un errore “Autorizzazione negata” ogni volta che provo a copiare la mia chiave SSH sul mio server.

Questo problema è molto probabilmente dovuto a un problema di autorizzazioni nel tuo server remoto. Nella maggior parte dei casi, l’ ssh-copy-idutilità dovrebbe risolvere correttamente eventuali problemi di accesso non appena si connette al server remoto. Tuttavia, ci sono casi in cui questa funzione si interrompe e non riesce a copiare correttamente “id_rsa” della tua macchina locale.

Per risolvere questo problema, accedi al tuo server remoto ed esegui chmod 700 /home/$USER/.ssh/* && chmod 600 /home/$USER/.ssh. Questo imposterà i bit di autorizzazione corretti sia per la cartella “.ssh” che per il suo contenuto.

Credito immagine: Unsplash . Tutte le modifiche e gli screenshot di Ramces Red.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *