Czy powinienem utworzyć nowy prywatny klucz ssh w każdym systemie?

10

Muszę połączyć się z wieloma serwerami z wielu urządzeń za pośrednictwem SSH. Zastanawiam się, czy powinienem tworzyć nowy plik id_dsa na każdym urządzeniu, z którego się łączę, czy też nie ma problemu z skopiowaniem tego samego pliku id_dsa na każde urządzenie.

Mam na przykład mój podstawowy system stacjonarny oparty na Ubuntu i MacBook Pro z ssh. Mam Netbooka z systemem Windows i zainstalowanym Putty. I mam telefon z Androidem z ConnectBot. Z dowolnego z tych urządzeń może być konieczne połączenie SSH z dziesiątkami różnych serwerów fizycznych i wirtualnych.

Każdy serwer wymaga zainstalowania mojego klucza publicznego. Ponadto moje konta GitHub i Codaset wymagają mojego klucza publicznego.

Aby uprościć zarządzanie kluczami, myślę o użyciu tego samego klucza prywatnego na wszystkich tych systemach. Czy to powszechna praktyka, czy lepiej mieć klucz prywatny w każdym systemie?

Tauren
źródło

Odpowiedzi:

3

Jeśli użyjesz tego samego klucza publicznego w każdym systemie, a klucz prywatny zostanie przejęty, wówczas każdy system używający tego klucza, z wyjątkiem innych ograniczeń, będzie dostępny.

Ufam, że używasz kluczy prywatnych chronionych hasłem?

W naszej praktyce zarządzania mamy „role” o niskim, średnim i wysokim poziomie bezpieczeństwa. Każda rola używa innego klucza. Kluczów prywatnych o wysokim poziomie bezpieczeństwa nigdy nie należy przenosić do zasobów zewnętrznych, używanych na laptopach, które mogłyby zostać zgubione / skradzione itp. Klucze o średnim i niskim poziomie zabezpieczeń można stosować w szerszym zakresie scenariuszy.

Sugeruję zbadanie twoich wzorców użytkowania i zobacz, co sprawia, że ​​pod względem ról bezpieczeństwa. Jaką szkodę wyrządził ci klucz prywatny?

Czy zastanawiałeś się nad umieszczeniem klucza prywatnego SSH na urządzeniu sprzętowym, z którego nie można go skradzić, usuwając potencjalny kompromis klucza w celu wyeliminowania problemu?

Zarówno moduły bezpieczeństwa sprzętowego, jak i karty inteligentne mogą być używane do bezpiecznego przechowywania kluczy prywatnych SSH, umożliwiając wykonywanie wszystkich operacji kryptograficznych na urządzeniu, a nie na systemach operacyjnych. Nie stanowią one jednak panaceum, ponieważ wymagają one również zapasowych urządzeń sprzętowych w przypadku awarii sprzętu.

jeffatrackaid
źródło
Tak, moje klucze są chronione hasłem. Dzięki za odpowiedź. Pomogłeś mi potwierdzić moją obawę, że jeśli użyję tego samego klucza na wszystkich moich urządzeniach, może to spowodować większe problemy na drodze.
Tauren
2

Absolutnie powinieneś. Zawsze możesz dodać wszystkie klucze do pliku autoryzowanego_kluczy2. Podoba mi się sugestia jeffatrackaida. Jednak używałbym różnych kluczy prywatnych dla każdego urządzenia - dlaczego nie. Strać Androida. Proste, usuń klucz z listy autoryzowanych kluczy. Jeśli tego nie zrobisz, będziesz musiał ponownie wygenerować ten poziom klucza.

To powiedziawszy, zależy to od tego, jak postrzegasz ryzyko związane z tymi aktywami. Oczywiście nie chcesz zgubić kluczy, ale niektóre z nich możesz narazić na większe ryzyko, np. Github kontra root do twojego vps.


źródło
Do Twojej wiadomości authorized_keys2jest przestarzały od 2001 r. - OpenSSH używa teraz authorized_keys(choć nadal czyta oba pliki w celu zachowania zgodności)
1686
Ach, ok dzięki. Zawsze staram się wyłączyć SSHv1 i szyfry o niskiej sile itp.
2

Pamiętasz, kiedy Debian miał mały problem z entropią podczas generowania kluczy SSH? Wtedy dobrze się nauczyłem.

Mam własne klucze prywatne do własnych rzeczy, takich jak dostanie się na moje osobiste serwery. Mam klucz „All Purpose”, który przenosi mnie do większości moich skrzynek programistycznych, a następnie wycinam klucze dla klienta, który obsługuję.

Prowadzę również bardzo szczegółową listę kluczy na poszczególnych komputerach, na wypadek, gdybym musiał je szybko wymienić lub usunąć.

Do wszystkiego, co jest poważne, używam tylko LDAP / PAM, na wypadek, gdybym musiał szybko usunąć kogoś innego .

Tim Post
źródło