Autenticarsi con ssh senza password
Autenticarsi con ssh senza password 🙂 Sempre più spesso mi capita di dover sostituire la chiave, perché l’ho persa, perché l’ho dimenticata da qualche parte o perché sono sbadato 😛
Quindi scrivo questo bel tutorial sul come autenticarsi in ssh senza password anche per ricordarmi come si forgiano le chiavi e come si distribuiscono.
Abbiamo terminato di istallare il nostro server ed ora cominciamo con il forgiare la chiave per accedervi.
Ci spostiamo sul ns client e apriamo una bella shell con il ns utente.
ci spostiamo nella directory .ssh (se non c’è la creiamo con un bel mkdir .ssh)
Forgiamo la chiave necessaria ad autenticarsi con ssh senza password digitando:
ssh-keygen -b 2048 -C “Nome e Cognome del proprietario della chiave” -t rsa -f key -N “”
Vediamo il significato dei parametri che abbiamo impartito:
ssh-keygen parla da solo, è il programma che serve per creare le chiavi
-b 2048 Qui diciamo di creare una chiave di 2048 bit volendo possiamo forgiarne anche di più grandi, 4096, 8192, 16384 etc, etc.
-C “Nome e Cognome” Qui possiamo scrivere quello che vogliamo, è un semplice remark, io preferisco mettere nome e cognome così in presenza di più chiavi, qualora ci fosse la necessità di revocarne una si trova subito quella da eliminare.
-t rsa Con questa estensione diciamo che tipo di chiave bisogna creare, rsa e dsa per un ssh di protocollo 2, quello che si usa normalmente, rsa1 per il vecchio protocollo ssh.
-f Qui ci va il nome del file della chiave, se avessi scritto foo al posto di key avrei ottenuto foo e foo.pub rispettivamente per la chiave privata e quella pubblica.
-N indica un pin che è possibile usare per la chiave, ma visto che io non voglio usare password, non voglio usare neppure i pin, pertanto lo lascio vuoto.
Adesso dovremmo avere 2 file, key e key.pub
:~/.ssh$ ls -la
totale 26
drwxr-xr-x 2 davide davide 160 feb 28 22:04 .
drwxr-xr-x 42 davide davide 1656 feb 28 22:44 ..
-rw——- 1 davide davide 12603 feb 28 21:41 key
-rw-r–r– 1 davide davide 2791 feb 28 21:41 key.pub
-rw-r–r– 1 davide davide 3542 mar 1 00:12 known_hosts
:~/.ssh$
sistemiamo i permessi in modo che key (chiave privata) possa essere letta e scritta solo da noi, mentre key.pub letta e scritta solo da noi e letta da chiunque.
Una cosa saggia sarebbe quella di proteggerla dalla cancellazione accidentale
pertanto la proteggiamo con un chattr +i ke*
Chiaramente è inutile che io dica che se la chiave privata casca in mani sbagliate siamo fregati, pertanto va custodita gelosamente e non va mai messa su un server.
A questo punto dobbiamo copiare la chiave pubblica sul server remoto
quindi ssh-copy-id -i key.pub nomeutente@hostremoto
ssh-copy-id è il programma che si occupa di copiare la chiave pubblica.
-i sta per input quindi prende il file key.pub e lo spara attraverso una connessione protetta all’utente root presso hostremoto.
A questo punto ci verrà richiesta la password (per l’ultima volta), la digitiamo e se tutto è andato per il verso giusto verrà copiata la chiave pubblica sull’host remoto.
Per verificare se tutto è andato bene digitiamo un
ssh -l root hostremoto, dovremmo ottenere il prompt
:~#
a questo punto se ci rechiamo nella directory .ssh del host remoto dovremmo trovare il file che contiene la ns chiave necessaria ad autenticarsi con ssh senza password.
~/.ssh # ls -la
totale 16K
drwx—— 2 root root 4,0K feb 28 21:59 .
drwx—— 8 root root 4,0K feb 28 22:12 ..
-rw——- 1 root root 2,8K feb 28 21:57 authorized_keys
-rw-r–r– 1 root root 591 gen 31 18:11 known_hosts
se guardiamo il contenuto del file, noteremo che authorized_keys è uguale al nostro file key.pub
~/.ssh # cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAIAQDmr59o4XhkSrw595Fx4Q/O80osSWTxku2dYeBqG23/wuksaLDh4al9rVdVwcwnbbBBHIunO/ALGBZto5DYArN/L72jB+DiBQqlR5frCTo68+aS5mBk5KnhZwoiDaow2+xnXetaNya6sJAqPDj5HsgluPTnZHXyNq1sCUimiSpQyqMOdIAkUMkYXXDFH5rQX/Hgl560dgVB9qJFXIapV+ww4qCp/hD2NSAkRZx/0xXevKT1X8oU1ovqdkbuOj44QjZdWZLhrpjTP+GarukDmj7rHCEr7CJ5B05V84k1a+Sjfe0IvlW2Nd6fb0CNpdlpkvJs7Jq3Hcy3Df1JBWftmkCLZFgFLplqx9ddNzveEk+BkW0PDUT98e+mpXWkLN5FUHSLL7/us8dkhaieAe4/FNo4oTMfw== Davide di Brigida
Con le chiavi per autenticarsi con ssh senza password è possibile autenticare qualsiasi cosa passi in ssh, dai tunnel alla shell, fino allo scambio dei file.
Pingback: sshfs senza accesso alla shell - Il pensiero di un uomo libero