Frage Mehrere öffentliche Schlüssel für einen Benutzer


Diese Frage ist ähnlich wie SSH Public Key Authentication - Kann ein öffentlicher Schlüssel für mehrere Benutzer verwendet werden? aber es ist umgekehrt.

Ich experimentiere mit ssh, also würde jeder SSH-Server für deine Antworten funktionieren.

Kann ich mehrere öffentliche Schlüssel mit demselben Benutzer verknüpfen? Was bringt es, dies zu tun? Können auch verschiedene Home-Verzeichnisse für unterschiedliche Schlüssel verwendet werden (die alle mit demselben Benutzer verknüpft sind)?

Bitte lassen Sie mich wissen, wenn ich unklar bin.

Vielen Dank.


47
2018-01-12 21:19


Ursprung




Antworten:


Sie können so viele Schlüssel haben, wie Sie möchten. Es empfiehlt sich, separate private / öffentliche Schlüsselsätze für verschiedene Bereiche zu verwenden, z. B. einen Satz für den persönlichen Gebrauch, einen für Ihre Arbeit usw.

Erzeuge zuerst zwei separate Schlüsselpaare, eines für Zuhause und eines für Arbeit:

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

Als nächstes fügen Sie einen Eintrag zu Ihrem hinzu ~/.ssh/config Datei zum Auswählen des zu verwendenden Schlüssels basierend auf dem Server, mit dem Sie eine Verbindung herstellen:

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>

Als nächstes fügen Sie den Inhalt Ihrer id_rsa.work.pub in ~/.ssh/authorized_keys auf der Arbeitsmaschine, und machen Sie das gleiche für den Home-Taste auf Ihrem Heimcomputer.

Wenn Sie dann eine Verbindung zum Home-Server herstellen, verwenden Sie einen der Schlüssel und den Arbeitsserver verwenden Sie einen anderen.

Beachten Sie, dass Sie wahrscheinlich beide Schlüssel zu Ihrem hinzufügen möchten ssh-agent Sie müssen also nicht ständig Ihre Passphrase eingeben.


72
2018-01-12 21:37



Dies würde auch funktionieren, wenn id_rsa.work.pub und id_rsa.home.pub auf demselben Server platziert wären, oder? Der Grund dafür ist, dass ich möglicherweise von verschiedenen Computern aus eine Verbindung zu einem Server herstelle. Daher frage ich mich, ob es sinnvoll ist, für jeden Computer unterschiedliche Schlüsselpaare zu verwenden, selbst wenn sie sich als derselbe Benutzer mit dem Server verbinden. Vielen Dank. - Russell
Absolut! Auf der Serverseite überprüft ssh alle öffentlichen Schlüssel in der Datei authorized_keys, bis eine Übereinstimmung gefunden wird. So können Sie alle Schlüssel in der gleichen authorized_keys Datei auf dem Server kein Problem stellen. - Phil Hollenback
@PhilHolleback "ssh überprüft alle öffentlichen Schlüssel in der authorized_keys-Datei, bis eine Übereinstimmung gefunden wird" - Sie meinen, dass es weiterhin Anfragen an den Client für jeden öffentlichen Schlüssel sendet, bis der Client nachweist, dass er einen entschlüsseln kann? Haben Sie Referenzen dafür? (wirklich interessiert) - aaa90210


Es macht sehr viel Sinn, die Schlüssel für mehrere Benutzer an einen Benutzer zu senden. Häufige Gründe sind:

  • Sicherung
  • Git (z.B. Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • gemeinsamer Zugang zu einer App

Soweit verschiedene Homedirs haben, können Sie sie per Schlüssel ändern environment="HOME=/home/user1" für Benutzer1 Schlüssel in der Datei authorized_keys. Sehen man authorized_keys.

Probieren Sie es aus, YMMV.


4
2018-01-12 21:29