Come impostare e utilizzare SSH in Linux

Se hai utilizzato Linux per un certo periodo di tempo, sicuramente hai sentito parlare di uno strumento noto come SSH. Secure Shell, comunemente conosciuto come SSH, è un protocollo di rete per stabilire connessioni sicure tra un client e un server remoto. È progettato per consentire agli utenti di effettuare il login in modo sicuro su diversi tipi di computer in remoto attraverso una rete. Qui ti mostriamo come impostare e copiare facilmente le chiavi SSH sul tuo server.
Leggi anche: Come mostrare tutte le connessioni SSH attive in Linux
Installazione di SSH
Per iniziare, dobbiamo installare il server SSH. Puoi trovare e installare il pacchetto openssh-server nel Centro Software o nel tuo gestore di pacchetti. In alternativa, se sei su un server (o preferisci semplicemente usare il terminale), apri un terminale e digita il seguente comando:
# Ubuntu/Debian
sudo apt install openssh-server
# Fedora/CentOS/REHL
sudo dnf install openssh-server
Leggi anche: Come creare un honeypot SSH per catturare hacker nel tuo server Linux
Abilitare SSH in Linux
Una volta installato il server OpenSSH sulla tua macchina, dovrai avviare e abilitare l’unità systemd. Per farlo, puoi semplicemente digitare il seguente comando nel terminale:
sudo systemctl enable --now ssh
Buono a sapere: puoi connettere programmi in Linux usando pipe SSH.
Generare chiavi SSH
Una volta installato il server openssh, puoi iniziare a generare coppie di chiavi SSH. Prima di procedere, assicurati di non avere una coppia di chiavi esistente, poiché questo processo sovrascriverà quella esistente.
Per controllare se hai una chiave esistente, usa il comando:
ls -la ~/.sshSe hai una coppia di chiavi esistente, il comando sopra dovrebbe visualizzare i file “id_rsa” e “id_rsa.pub”.

Una volta verificato di non avere una coppia di chiavi SSH esistente, puoi procedere a generarne una nuova. In caso contrario, esegui il backup delle tue vecchie chiavi per evitare di perderle.
Per generare una nuova chiave, usa il comando:
ssh-keygen -t rsa -b 4096Il comando sopra invoca l’utilità ssh-keygen per generare interattivamente una coppia di chiavi SSH. Utilizzando l’opzione -t, specifichiamo il tipo di chiave da generare. In questo caso, generiamo una chiave RSA.
Utilizziamo anche l’opzione -b per specificare il numero di bit nella chiave. Se usi una chiave RSA, la dimensione minima della chiave è 1024. Se non specificato, genererà la chiave con 3072 bit.

È consigliabile utilizzare la posizione predefinita per memorizzare le chiavi SSH per evitare di dover digitare il percorso quando ci si connette tramite SSH utilizzando le chiavi.
Se non desideri crittografare la tua chiave con una passphrase, premi Invio per saltare.
Copiare la chiave al server remoto
Ora che abbiamo generato una nuova coppia di chiavi SSH, dobbiamo caricarla sulla macchina remota che vogliamo gestire.
Il modo più efficiente per farlo è utilizzare il comando ssh-copy-id. Usa il comando come segue:
ssh-copy-id remote_user@remote_IPSe stai utilizzando un file di chiave con un nome file separato, puoi utilizzare il seguente comando per specificare il percorso del file di chiave.
ssh-copy-id -i ~/.ssh/id_rsa remote_user@remote_IPSe accedi alla macchina remota per la prima volta, dovrai accettare l’impronta digitale.
Successivamente, inserisci la password SSH per l’utente remoto.
Una volta autenticato, il comando ssh-copy-id aggiungerà il contenuto della tua chiave id_rsa.pub al file “~/.ssh/authorized_keys” sulla macchina remota e chiuderà la connessione.

Accedere alla macchina remota
Una volta completati con successo tutti i passaggi sopra descritti, puoi ora accedere al server remoto senza la necessità di una password.
Puoi testare ciò utilizzando il comando:
ssh remote_user@remote_ipA meno che tu non abbia abilitato una passphrase per la tua chiave, accederai automaticamente.
Domande frequenti
1. SSH è sicuro?
SSH è un potente strumento di sicurezza che consente agli utenti autenticati di accedere a un sistema remoto. Tuttavia, è sicuro solo quanto il file di configurazione lo consente. Un server SSH non configurato o configurato in modo errato può essere vulnerabile agli hacker e all’accesso di terzi. Assicurati di proteggere la configurazione SSH subito dopo averla installata.
2. Dove si trova il file authorized_keys di SSH?
Il file authorized_keys di SSH contiene il file di chiave pubblica di ciascun utente e specifica quali utenti sono autorizzati a connettersi a un server. In Linux, il file authorized_keys si trova solitamente nella cartella “.ssh” nella directory Home dell’utente.
3. Come posso risolvere il problema di permesso negato con ssh-copy-id?
Questo accade solo quando hai già impostato una chiave pubblica nel tuo server remoto e hai disabilitato l’autenticazione con password. Per risolvere questo problema, accedi prima al tuo server, abilita l’autenticazione con password nel file “/etc/ssh/sshd_config”, quindi esegui nuovamente il comando ssh-copy-id.
Una volta copiato il nuovo file di chiave, ricorda di disabilitare nuovamente l’opzione di autenticazione con password.