Accesso SSH a cvs.gentoo.org
1.
Chiavi SSH
Key Handling
La propria coppia di chiavi SSH consente l'autenticazione nell'Infrastruttura
Gentoo. Maneggiare in modo appropriato queste chiavi è vitale per la sicurezza
delle nostre macchine. Si cerchi di senguire queste linee guida:
- Conservare le chiavi private solamente in macchine di cui si è sicuri.
Vale a dire solo dove si hanno permessi di root esclusivi e non condivisi
con altri utenti.
- Non utilizzare l'Infrastruttura Gentoo come ambiente fidato. Non
conservare copie delle proprie chiavi nelle macchine Gentoo (come
dev.gentoo.org). Si può inoltrare il proprio SSH agent attraverso le
macchine Gentoo se sono configurate per farlo (maggiori informazioni sul
forwarding sono disponibili più avanti).
- Codificare le proprie chiavi con una passphrase robusta. Se si hanno dubbi
sulla qualità della propria passphrase, installare pwgen; pwgen -sB 25
- Non accedere all'infrastruttura Gentoo da macchine non fidate, come
computer condivisi in uffici o hotel, internet cafè o macchine di
conferenze. Molte di queste macchine sono infette da malware.
- Se si ha il timore che le proprie chiavi siano compromesse, contattare
immediatamente l'infrastruttura. Si può farlo attraverso #gentoo-infra su
irc.freenode.net o scrivendo a incidents@gentoo.org.
- Le chiavi ufficiale dei server dell'infrastruttura Gentoo sono disponibili
nella pagina Specifiche dei server
dell'infrastruttura Gentoo.
Creare le chiavi SSH
Prima di tutto bisogna avere effettuato fisicamente il login sul proprio
computer. Assicurarsi che nessun altro veda ciò che si digita, perchè si
scriveranno passphrases e cose simili. Pertanto armarsi di spray al peperoncino
e combattere tutte le entità non fidate finchè non si è a casa da soli.
Ora si creerà la vostra chiave ssh, una chiave RSA per essere precisi. La
chiave dovrebbe essere almeno 2048 bit, ma si raccomanda di crearla da 4096 bit.
Effettuare il login sul proprio computer con l'utente che si ha intenzione di
usare quando si vuole accedere a cvs.gentoo.org. Quindi digitare ssh-keygen
-t rsa -b 4096:
Codice 1.1: Creare chiavi SSH |
$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/temp/.ssh/id_rsa):
Created directory '/home/temp/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/temp/.ssh/id_rsa.
Your public key has been saved in /home/temp/.ssh/id_rsa.pub.
The key fingerprint is:
85:35:81:a0:87:56:78:a2:da:53:6c:63:32:d1:34:48 user@examplehost
|
Nota:
Assicurarsi di impostare una passphrase robusta sulla propria chiave privata.
Idealmente, questa passphrase dovrebbe essere almeno di otto caratteri e
contenere un misto di lettere, numeri e simboli.
|
Avvertenza:
Non impostare una passphrase vuota per le proprie chiavi ssh. Se
l'Infrastruttura si accorge di questa scelta l'account verrà sospeso.
|
Codice 1.2: File Creati |
# ls ~/.ssh
id_rsa id_rsa.pub
|
Si potrebbero avere più file di questi, ma i due file elencati sopra sono
quelli veramente importanti.
Il primo file, id_rsa, è la propria chiave privata. Non
darla a nessuno; non decifrarla in macchine non fidate. Lo Staff Gentoo non
chiederà mai una copia delle chiavi private.
Avvertenza:
Si faccia molta attenzione a quali macchine costudiscono le proprie chiavi
private. Se si ha accesso a molti host (fidati!) dai quali si vuole
connettersi a cvs.gentoo.org, si dovranno copiare id_rsa nelle
directory ~/.ssh su questi host. Le macchine fidate sono quelle
dove si è gli unici ad avere privilegi di root; queste macchine non vengono
condivise con altri utenti.
|
Il secondo file, id_rsa.pub, è la propria chiave pubblica.
Distribuire questo file a tutti gli host che si vuole siano in grado di accedere
attraverso l'autentificazione SSH pubkey. Questo file dovrebbe essere
concatenato a ~/.ssh/authorized_keys su questi host remoti.
Aggiungerlo anche al proprio host locale cosìcchè ci si possa connettere anche
ad esso se si possiedono molte macchine
Codice 1.3: Aggiungere la chiave SSH alla macchina |
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
|
Installare la propria chiave pubblica su una macchina usando l'autenticazione
LDAP per SSH
Nota:
Se si è un nuovo sviluppatore, il proprio reclutatore inserirà la vostra chiave
SSH in LDAP, in modo che si possa effettuare il login. Da quel momento in poi
è possibile aggiungere le chiavi SSH da soli usando la seguente procedura.
|
Nota:
Per gran parte dell'infrastruttura Gentoo, usiamo LDAP per distribuire le
informazioni sull'utente incluse le chiavi pubbliche SSH. Su queste macchine,
~/.ssh/authorized_keys generalmente non dovrebbe contenere la
propria chiave.
|
Si dovrebbe mettere la propria chiave pubblica in LDAP, usando direttamente
perl_ldap, o ldapmodify. La guida dell'infrastruttura LDAP
(ndT in inglese) lo descrive più dettagliatamente.
Codice 1.4: Aggiungere la chiave SSH con perl_ldap su dev.gentoo.org |
$ perl_ldap -b user -C sshPublicKey "$(cat ~/.ssh/id_rsa.pub)" <username>
|
Avvertenza:
Ogni attributo sshPublicKey deve contenere esattamente una chiave
pubblica. Se si possiedono più chiavi pubbliche, bisogna usare più attributi!
|
Usare keychain
Tutte le volte che si vorrà effettuare il login ad un host remoto usando
l'autentificazione a chiave pubblica SSH, sarà richiesto di immettere la propria
passphrase. Anche se a tutti piace scrivere, a lungo andare può risultare
fastidioso. Fortunatamente, c'è keychain che può semplificare questa
operazioni. C'è un documento a riguardo qui, ma ne sarà fornita una breve
introduzione.
Prima di tutto, installare keychain:
Codice 1.5: Installare keychain |
# emerge keychain
|
Ora keychain caricherà la propria chiave ssh privata quando si effettuerà il
login sulla propria macchina locale. Per far ciò, aggiungere le righe seguenti a
~/.bash_profile. Ancora, questo dovrebbe esser fatto sulla propria
macchina locale dove si lavora al CVS di Gentoo.
Avvertenza:
Non eseguire MAI keychain o decifrare le chiavi private in macchine non
sicure.
|
Codice 1.6: Aggiungere questo a .bash_profile |
keychain ~/.ssh/id_rsa
. .keychain/-sh
|
Assicurarsi di sostituire hostname con il proprio hostname.
|