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?
Jason Creighton
źródło
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.

jtimberman
źródło
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.

Matthew Schinckel
źródło
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,