Il protocollo SSH per la connessione remota ai server supporta l'utilizzo di coppie di chiavi al posto degli accessi basati su password. La chiave privata esiste sulla macchina che avvia la connessione (di solito una workstation) e la chiave pubblica esiste in un account utente sul server remoto. Quando tenti una connessione, le chiavi pubblica e privata interagiscono per autenticare l'utente.
L'autenticazione a coppia di chiavi è più sicura dell'autenticazione basata su password. Se ti connetti regolarmente dalle stesse macchine, disabilitare l'autenticazione basata su password tramite SSH e consentire solo l'autenticazione a coppia di chiavi protegge il tuo server dai tentativi di accesso con forza bruta.
Per ulteriori informazioni sull'utilizzo di SSH per la connessione ai server, vedere i seguenti articoli:
- Per informazioni sulla connessione e la generazione di chiavi sulla riga di comando di Linux® o sul terminale macOS® X, vedere:Connessione a un server tramite SSH su Linux o Mac OS.
- Per informazioni sull'utilizzo di PuTTY® su Microsoft® Windows® per effettuare connessioni SSH, vedere:Connessione a Linux da Windows tramite PuTTY.
- Per informazioni sull'utilizzo di PuTTYgen® su Windows per generare coppie di chiavi, vedere:Generazione di chiavi RSA con SSH - PuTTYgen
Questo articolo illustra l'utilizzo dello strumento da riga di comando python-novaclient per generare una coppia di chiavi e assegnarne la chiave pubblica a un server Linux® quando crei il server.
Puoi anche gestire le coppie di chiavi direttamente utilizzando l'API dei server cloud.
Prerequisiti
Installa client python-nova sul computer client. Per trovare istruzioni dettagliate per configurare il client, vedere Utilizzo di python-novaclient con Rackspace Cloud.
Crea una coppia di chiavi
La keypair
comando in python-novaclient crea o carica una coppia di chiavi esistente e la associa a un nome a cui puoi fare riferimento nelle operazioni di compilazione.
Puoi creare una nuova coppia di chiavi utilizzando keypair-add
comando per nova
ignorando un nome per la coppia di chiavi come argomento. L'operazione API memorizza la chiave pubblica nel tuo profilo utente. L'output del comando è la chiave privata.
Ad esempio, per creare una coppia di chiavi denominata mykey
e invialo a un file in .ssh directory dell'utente corrente, è possibile eseguire il seguente comando:
nova keypair-add mykey > ~/.ssh/webserver_rsa
Nota :Assegna un nome qualsiasi al file di chiavi e mettilo in una posizione che potrai in seguito. Se generi più chiavi per server diversi, è utile assegnare ai file di chiavi il nome dei server.
Solo la chiave pubblica esiste nel tuo profilo. Se perdi la chiave privata, devi generare una nuova coppia di chiavi.
Carica una chiave esistente
Se hai già una coppia di chiavi generata, puoi aggiungere la chiave pubblica al tuo profilo usando il keypair-add
comando per nova
con il --pub-key
opzione, come mostrato nell'esempio seguente:
nova keypair-add --pub-key id_rsa.pub mykey
Elenca chiavi
Per elencare le chiavi associate al tuo profilo, utilizza l'keypair-list
comando per nova
, come mostrato nell'esempio seguente:
nova keypair-list
Mostra dettagli chiave
Per vedere i dettagli su una particolare chiave pubblica nel tuo elenco, usa il keypair-show
comando per nova
e fare riferimento al nome assegnato alla coppia di chiavi, come mostrato nell'esempio seguente:
nova keypair-show mykey
Puoi utilizzare questo comando per recuperare la tua chiave pubblica da utilizzare con un altro server.
Elimina chiave
Per rimuovere una chiave pubblica dal tuo profilo, usa keypair-delete
comando pernova
e fare riferimento al nome assegnato alla coppia di chiavi, come mostrato nell'esempio seguente:
nova keypair-delete mykey
Crea un server con una chiave iniettata
Per creare un server che include una chiave pubblica memorizzata per l'utente root, utilizzare il seguente comando di creazione del server di avvio con il --key-name
argomento:
nova boot --flavor performance1-1 --image <image-id> --key-name mykey Test_Server
La risposta al comando mostra le informazioni sul tuo server, incluso un key_name: mykey
campo che mostra la chiave associata a quel server.
Connetti a un server con una coppia di chiavi
Dopo che il server che hai creato con una coppia di chiavi è attivo e funzionante, puoi accedere utilizzando quella coppia di chiavi.
Su Linux e macOS, puoi aggiungere la tua chiave privata al tuo account utente .ssh directory e nomina il tuo server in ~/.ssh/config file, come mostrato nell'esempio seguente:
Host myservername
User myuser
HostName myServerDnsOrIp
IdentityFile /path/to/appropriate/ssh/rsa/private/key
Oppure puoi usare -i
opzione per ssh
per identificare la chiave privata per una connessione. Ad esempio:
ssh -i ~/.ssh/webserver_rsa root@server.example.com
Coppie di chiavi e controllo degli accessi basato sui ruoli (RBAC)
Le coppie di chiavi vengono memorizzate per gli utenti e non per gli account. Pertanto, un utente configurato su un account non può vedere o manipolare le chiavi di altri utenti sull'account, indipendentemente dal ruolo assegnato a quell'utente.
Utilizza la scheda Feedback per inserire commenti o porre domande. Puoi anche avviare una conversazione con noi.