Czy używanie tego samego prywatnego klucza ssh na wielu komputerach jest złym pomysłem?


35

Niedawno kupiłem laptopa, z którego muszę uzyskać dostęp do tych samych zdalnych hostów, co robię z pulpitu. Przyszło mi do głowy, że możliwe jest po prostu skopiowanie pliku klucza prywatnego z pulpitu na laptop i uniknięcie konieczności dodawania nowego klucza do ~/.ssh/authorized_keysplików na wszystkich hostach, do których chcę uzyskać dostęp. Więc moje pytania to:

  1. Czy to w ogóle możliwe?
  2. Czy są jakieś nieoczywiste konsekwencje dla bezpieczeństwa?
  3. Czasami loguję się na pulpicie z laptopa. Gdyby używał tego samego klucza, czy spowodowałoby to jakieś problemy?

2
Podejrzewam, że masz na myśli klucze autoryzowane, nieznane hosty. Ten pierwszy jest dla przychodzących, drugi dla wychodzących.
— Matthew Schinckel,

Dobry chwyt Naprawiony.
— Jason Creighton,

Odpowiedzi:


29

Tak, jest to możliwe. Twój klucz prywatny nie jest powiązany z jednym komputerem.

Nie jestem pewien, co rozumiesz przez nieoczywistość, to często subiektywne;). To wcale nie jest zły pomysł, jeśli upewnisz się, że masz bardzo silny zestaw haseł, co najmniej 20 znaków.

Nie ma problemów z połączeniem z tym samym kluczem co na pulpicie. Skonfiguruję agenta ssh dla twojego klucza na laptopie i przekażę agenta na pulpit, abyś mógł używać tego klucza w innych systemach, z których masz dostęp.

Ze strony podręcznika ssh-agent w systemie Linux:

ssh-agent to program do przechowywania kluczy prywatnych używanych do uwierzytelniania klucza publicznego (RSA, DSA). Chodzi o to, że ssh-agent jest uruchamiany na początku sesji X lub sesji logowania, a wszystkie inne okna lub programy są uruchamiane jako klienci programu ssh-agent. Dzięki zastosowaniu zmiennych środowiskowych agent może zostać zlokalizowany i automatycznie użyty do uwierzytelnienia podczas logowania do innych komputerów za pomocą ssh (1).

Uruchomiłbyś to na swoim laptopie, albo programie ssh-agent na Linux / Unix (dostarczany z OpenSSH), albo na agencie puTTY, jeśli używasz Windows. Nie potrzebujesz agenta działającego na żadnym zdalnym systemie, to po prostu utrzymuje Twój klucz prywatny w pamięci w systemie lokalnym, więc musisz tylko wpisać hasło, aby załadować klucz do agenta.

Przekazywanie agentów to funkcja klienta ssh ( sshlub putty), która po prostu utrzymuje agenta w innych systemach za pośrednictwem połączenia ssh.


1
Nie do końca rozumiem, co sugerujesz w odniesieniu do przekazywania agentów ssh. Czy mógłbyś trochę rozwinąć tę kwestię? Powinienem wspomnieć, że nie mogę liczyć na to, że komputer zawsze będzie dostępny, gdy będę potrzebować laptopa.
— Jason Creighton,

Zaktualizowano odpowiedź :)
— jtimberman

10

Kiedyś korzystałem z jednego klucza prywatnego na wszystkich moich komputerach (a na niektórych z nich jestem tylko użytkownikiem, a nie administratorem), ale ostatnio to zmieniłem. Działa z jednym kluczem, ale oznacza, że ​​jeśli musisz go unieważnić (jeśli jest zagrożony), musisz go zmienić na wszystkich komputerach.

Oczywiście, jeśli atakujący uzyska dostęp i będzie mógł ssh na innym komputerze, może uzyskać klucz z tego komputera i tak dalej. Ale sprawia, że ​​czuję się trochę bezpieczniej wiedząc, że mogę odwołać tylko jeden klucz i zablokować maszynę. Oznacza to jednak, że muszę usunąć klucz z pliku autoryzowanych_kluczy.


Przepraszam, że nekrologię stary post, ale czy uważasz, że można to złagodzić, szyfrując swój klucz prywatny za pomocą hasła? Czy w twoim przypadku hasło również zostało naruszone?
— trzecient

1
Prawdopodobnie zostanie to złagodzone poprzez wprowadzenie hasła na kluczu. W rzeczywistości jednak prawdopodobnie możesz użyć przekazywania dalej ssh (za pomocą agenta), a następnie mieć tylko jeden klucz na prawdziwym komputerze, którego używasz, i faktycznie mieć chronione hasłem.
— Matthew Schinckel,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.