Wiele kluczy publicznych dla jednego użytkownika

55

To pytanie jest podobne do uwierzytelniania klucza publicznego SSH - czy można użyć jednego klucza publicznego dla wielu użytkowników? ale jest na odwrót.

Eksperymentuję z użyciem ssh, aby każdy serwer ssh działał na twoje odpowiedzi.

Czy mogę mieć wiele kluczy publicznych prowadzących do tego samego użytkownika? Jakie są z tego korzyści? Czy można ustawić różne katalogi domowe dla różnych używanych kluczy (z których wszystkie prowadzą do tego samego użytkownika)?

Daj mi znać, jeśli będę niejasny.

Dzięki.

Russell
źródło

Odpowiedzi:

80

Możesz mieć tyle kluczy, ile chcesz. Dobrą praktyką jest używanie oddzielnych zestawów kluczy prywatnych / publicznych dla różnych dziedzin, takich jak jeden zestaw do użytku osobistego, drugi do pracy itp.

Najpierw wygeneruj dwa oddzielne klucze, jeden dla domu i jeden dla pracy:

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

Następnie dodaj wpis do ~/.ssh/configpliku, aby wybrać klucz do użycia na podstawie serwera, z którym się łączysz:

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>

Następnie dodaj swoją zawartość id_rsa.work.pubdo ~/.ssh/authorized_keyskomputera roboczego i zrób to samo dla klucza domowego na komputerze domowym.

Następnie, gdy łączysz się z serwerem domowym, używasz jednego z kluczy, a serwera roboczego używasz innego.

Zauważ, że prawdopodobnie chcesz dodać oba klucze do swojego, ssh-agentwięc nie musisz cały czas wpisywać hasła.

Phil Hollenback
źródło
To działałoby, nawet gdyby id_rsa.work.pub i id_rsa.home.pub zostały umieszczone na tym samym serwerze, prawda? Powodem jest to, że mogę łączyć się z serwerem z różnych komputerów, więc zastanawiam się, czy warto mieć różne pary kluczy dla każdego komputera, nawet jeśli łączą się z serwerem jako ten sam użytkownik. Dzięki.
Russell,
2
Absolutnie! Po stronie serwera, ssh sprawdzi wszystkie klucze publiczne w pliku autoryzowanych_kluczy, dopóki nie znajdzie dopasowania. Dzięki temu możesz umieścić wszystkie klucze w tym samym pliku autoryzowanych_kluczy na serwerze bez problemu.
Phil Hollenback,
@PhilHollenback „ssh sprawdzi wszystkie klucze publiczne w pliku Author_keys, dopóki nie znajdzie dopasowania” - masz na myśli, że wysyła wyzwania do klienta dla każdego klucza publicznego, dopóki klient nie udowodni, że może go odszyfrować? Czy masz na to jakieś referencje? (naprawdę zainteresowany)
aaa90210
5

Sensowne jest, aby klucze wielu użytkowników trafiały do ​​jednego użytkownika. Typowe przyczyny to:

  • utworzyć kopię zapasową
  • git (np. Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • wspólny dostęp do aplikacji

Jeśli chodzi o posiadanie różnych katalogów domowych, możesz je zmienić dla każdego klucza, przygotowując environment="HOME=/home/user1"klucz użytkownika 1 w pliku autoryzowanych_kluczy. Zobaczyć man authorized_keys.

Wypróbuj, YMMV.

MikeyB
źródło