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.