SSH è fighissimo e si possono fare un sacco di belle cose, ma siamo sempre partiti dal presupposto che tutto sia stato già configurato e bellochepronto da fare due clic, una password e fare tutti i nostri disastri degni di un film di hacker che scrivono milioni di codici in 3 secondi e beccano sempre la porta giusta per entrare nel più segreto dei server intergalattici.
Purtroppo la vita vera (Real Life, per i mondo nerd) non è tutto rose e fiori, neppure se fatti di pixel e byte: occorre che qualche buon tecnico ti abiliti questo e quello e soprattutto ti dica cosa devi fare tu.
Situazione:
Nuovo hosting condiviso linux, cPanel e SSH abilitato (non sempre è così e non puoi farci nulla) e via terminale provi ad entrare e il risultato è un bel:
Permission denied (publickey)
Ok, sicuramente devo fare qualcosa io, ma cosa?
1. Generare la propria chiave
L’SSH confronta la chiave che sono sul mio PC e quella memorizzata sul server. Se coincidono, significa che sono esattamente io a voler entrare nel server, quindi mi fa passare. Ci vuole una password di controllo, ma il grosso lo fa il confronto tra queste due chiavi. Ma il client a questo punto DEVE avere la chiave da passare, altrimenti cosa confronto? Bene generiamo la nostra chiave pubblica via terminale:
$ ssh-keygen
e otterai in risposta:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/nomeutente/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/nomeutente/.ssh/id_rsa.
Your public key has been saved in /Users/nomeutente/.ssh/id_rsa.pub.
The key fingerprint is:
12:34:56:78:98:12:32:43:98:22:a5:92:1a:1f:91:81 nomeutente@nomemacchina.local
sostanzialmente ti chiede dove salvare il file id_rsa.pub (in una cartella nascosta .ssh), poi la password e la sua conferma e stop: chiave generata o riparata.
2 Visualizziamo e copiamo la chiave
Ora dobbiamo visualizzare la nostra chiave per passarla al server. Io ho usato un editor di testo, che mi permette di visualizzare i file nascosti. Tu usa quello che vuoi, volendo anche il terminale stesso, con un comando del tipo: nano ~/.ssh/id_rsa.pub.
Copia questa chiave e ASSOLUTAMENTE NON DIVULGARLA! Uno abbastanza furbo potrebbe usarla per fingersi te in un collegamento con un server.
3 Incolliamola in cPanel
Con la nostra bella chiave in memoria, colleghiamoci al pannello cPanel e, dopo aver effettuato il login, entriamo in “Accesso SSH”, nel pannello Sicurezza (gli screenshot sono di un cPanel v.54.0.21, con tema paper_lantern)
-> Gestisci le chiavi SSH
Importa chiave nello spazio riservato alla chiave pubblica (infatti abbiamo un file id_rsa.pub), metti la password che hai inserito durante la creazione.
clic su importa.
4 Autorizza la chiave
l’ultimo passaggio quello di autorizzare la chiave che hai appena inserito. Tornato alla schermata di Accesso SSH, clicca su “Gestione” nella chiave id_dsa e “Autorizza“. Stop, fine dei giochi
Ora puoi collegarti in SSH al tuo server cPanel. Non fare danni e non dare la colpa a me.