Condividi su facebook
Condividi su linkedin
Condividi su twitter
Condividi su pinterest
Condividi su google

Contenuti

Le chiavi SSH aiutano ad aggiungere un livello di sicurezza al tuo sito web. Normalmente una connessione SSH (Secure Shell) è tra un client e un server. Questa connessione è autenticata da una password. Non è per dire che le password non siano più sicure ormai da un giorno. È facile eseguire il bruteforce in un server SSH provando diverse combinazioni di password. Quanto tempo pensi che impiegherebbe un hacker per provare una password di 8 cifre? In un super computer sarebbe una questione di minuti, in una normale macchina che utilizza la sua GPU, una questione di giorni. Ciò significa che le password sono una vulnerabilità di sicurezza. Ma non preoccuparti, c'è un modo per evitare di usare le password. Chiavi SSH

Cos'è una chiave SSH?

Una chiave SSH è una chiave crittografata composta da una CHIAVE PUBBLICA e da una CHIAVE PRIVATA. Questo metodo funziona tramite RSA Encryption in cui la chiave pubblica è disponibile a tutti i pubblici per crittografare i dati, ma solo la chiave privata può decrittografare quei dati. Almeno per ora. Potresti tecnicamente decifrare una chiave privata ma ci vorrebbero un paio di anni, un po 'più sicuro di una password. Normalmente vediamo questo tipo di crittografia tra il nostro browser e il web. Hai accesso alla chiave pubblica del server, che a sua volta crittografa i tuoi dati. Ma non puoi decriptarlo. Questa è chiamata crittografia unidirezionale.

Creazione di una chiave SSH

Per prima cosa devi sapere se hai delle chiavi attualmente generate. Per questo basta eseguire il seguente comando:

ls -l ~ / .ssh / id _ *. pub

Questo ti dirà se ci sono chiavi attualmente generate, se il risultato torna come: Nessun dato / file trovato, puoi usare la chiave già generata o crearne una tua.

Ora generiamo la chiave con il seguente codice:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Assicurati di sostituire il tuo indirizzo e-mail. Ora premi Invio, ti verrà chiesto di creare una passphrase. Ciò aggiunge un ulteriore livello di sicurezza, sebbene sia opzionale. Vedrai il seguente output:

Inserisci passphrase (vuoto per nessuna passphrase):

Il tuo output sarà simile a questo

output della riga di comando

Adesso puoi correre

ls ~ / .ssh / id_ *

L'output sarà

/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

Nota: fino ad ora tutto questo è stato generato nella tua macchina, non nel server. Questo è importante perché il seguente comando collegherà il tuo utente con la chiave SSH.

Chiave di collegamento con l'utente

ssh-copy-id nome_utente_remoto @ indirizzo_ip_server

Ti verrà richiesto il seguente output

remote_username @ server_ip_address's password:

Una volta autenticato, il contenuto di ~ / .ssh / id_rsa.pub verrà copiato in ~ / .ssh / authorized_keys. Puoi ugualmente eseguire i seguenti comandi se non sei in grado di eseguire i comandi menzionati prima.

Sul server, esegui questo comando:

gatto ~ / .ssh / id_rsa.pub | ssh nome_utente_remoto @ indirizzo_ip_server "mkdir -p ~ / .ssh && chmod 700 ~ / .ssh && cat >> ~ / .ssh / authorized_keys && chmod 600 ~ / .ssh / authorized_keys"

Disattivazione dell'accesso SSH con password

ssh sudo_user @ server_ip_address sudo nano / etc / ssh / sshd_config

Trova le seguenti righe e modificale come segue:

PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

Finalmente corri

sudo systemctl riavvia ssh

Adesso sei a posto.