Più chiavi pubbliche per un utente


55

Questa domanda è simile all'autenticazione con chiave pubblica SSH: è possibile utilizzare una chiave pubblica per più utenti? ma è il contrario.

Sto sperimentando l'uso di ssh in modo che qualsiasi server ssh funzioni per le tue risposte.

Posso avere più chiavi pubbliche collegate allo stesso utente? Quali sono i vantaggi di farlo? Inoltre, è possibile impostare directory home diverse per chiavi diverse utilizzate (tutte collegate allo stesso utente)?

Per favore fatemi sapere se non sono chiaro.

Grazie.

Risposte:


80

Puoi avere tutte le chiavi che desideri. È buona norma utilizzare comunque set di chiavi private / pubbliche separate per diversi regni, come un set per uso personale, uno per il proprio lavoro, ecc.

Innanzitutto, genera due coppie di chiavi separate, una per la casa e una per il lavoro:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

Successivamente, aggiungi una voce al tuo ~/.ssh/configfile per scegliere la chiave da utilizzare in base al server a cui ti connetti:

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

Avanti, aggiungere il contenuto del vostro id_rsa.work.pubin ~/.ssh/authorized_keyssulla macchina di lavoro, e fare lo stesso per il tasto Home sul pc di casa.

Quindi quando ti connetti al server principale usi una delle chiavi e il server di lavoro ne usi un'altra.

Nota che probabilmente vuoi aggiungere entrambe le chiavi al tuo, ssh-agentquindi non devi digitare la tua passphrase per tutto il tempo.


Funzionerebbe anche se id_rsa.work.pub e id_rsa.home.pub fossero installati sullo stesso server, giusto? Il motivo è che potrei collegarmi a un server da computer diversi, quindi mi chiedo se abbia senso avere differenti coppie di chiavi per ciascun computer anche se si stanno connettendo al server come lo stesso utente. Grazie.
Russell,

2
Assolutamente! Sul lato server, ssh controllerà tutte le chiavi pubbliche nel file authorized_keys fino a quando non trova una corrispondenza. Quindi puoi inserire tutte le chiavi nello stesso file authorized_keys sul server senza problemi.
Phil Hollenback, il

@PhilHollenback "ssh controllerà tutte le chiavi pubbliche nel file authorized_keys fino a quando non trova una corrispondenza" - vuoi dire che continua a inviare sfide al client per ogni chiave pubblica fino a quando il client dimostra che può decrittografarne una? Hai qualche riferimento per questo? (sinceramente interessato)
aaa90210

5

Ha molto senso avere le chiavi di più utenti che vanno a un solo utente. Le ragioni comuni sono:

  • di riserva
  • git (ad es. Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • accesso comune a un'app

Per quanto riguarda i diversi homedir, puoi cambiarli per chiave anteponendo environment="HOME=/home/user1"la chiave dell'utente1 nel file authorized_keys. Vedere man authorized_keys.

Provalo, YMMV.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.