Publikujesz id_rsa.pub dla łatwiejszej konfiguracji nowych środowisk?


20

Czy aby ułatwić konfigurację SSH bez hasła na nowych komputerach i środowiskach, czy jest jakiś powód, dla którego id_rsa.pubplik (tylko publiczna połowa pary kluczy) nie mógł zostać opublikowany gdzieś w Internecie? Na przykład w repozytorium GitHub dotfiles.

Wiem, że:

  • id_rsaplik (prywatny połowa pary klawisz) muszą być starannie strzeżone i
  • para kluczy powinna być chroniona hasłem

Ale moje wyszukiwania nie wykazały żadnej wyraźnej porady, że jest to dozwolone lub zalecane.

Czy z tej ciekawości ta sama rada byłaby przydatna dla pary kluczy bez hasła?


2
Chociaż w ogólnym przypadku (przy założeniu poprawnie wygenerowanego klucza) może to być bezpieczne, w przeszłości istniały wady (słynny błąd Debian OpenSSH ), który poważnie ograniczał przestrzeń klucza i pozostawiał klucz prywatny do zgadnięcia na podstawie klucza publicznego. Więc zawsze istnieje takie ryzyko - skąd wiesz, że Twój keygen SSH nie cierpi z powodu podobnej wady?
Bob

2
Jeden mechanizm tego już istnieje: ssh-import-id
MikeyB

abyś mógł udostępniać plik id_rsa.pub między komputerami?
Federico

Odpowiedzi:


26

RSA jest specjalnie zaprojektowany, aby umożliwić Ci udostępnianie tego klucza publicznego, więc tak, możesz go opublikować. Jest to dość podobne do działania x.509 (i SSL) z certyfikatami RSA.

Przed opublikowaniem pliku, spójrz na niego; jedyne rzeczy, które muszą tam być, to słowo kluczowe „ssh-rsa” i klucz zakodowany w base64. Być może zechcesz to utrzymać (uważam, że teraz jest to ustawienie domyślne).

Dzieje się tak niezależnie od tego, czy klucz ma hasło. Hasło szyfruje klucz prywatny i nie wpływa na klucz publiczny.

Upewnij się, jak zawsze, że Twój klucz jest wystarczająco entropijny i duży. Jeśli jest generowany przez uszkodzony PRNG, może być przewidywalny. Jednak opublikowanie tego nie stanowi większego ryzyka, ponieważ jeśli przestrzeń kluczy jest tak mała, osoba atakująca może po prostu spróbować użyć wszystkich kluczy w wyliczonej przestrzeni kluczy, dopóki nie uzyska właściwego.

Sugeruję użycie klucza 4096-bitowego (wyszczególnij -b 4096), aby trudniej niż zwykle (domyślnie jest to 2048) dla kogoś, kto zamieni Twój klucz publiczny na prywatny. Jest to jedyne znaczące ryzyko i nie jest to bardzo duże, ponieważ algorytm został specjalnie zaprojektowany, aby uczynić go niepraktycznym.


33

Już jest. :) Po prostu umieść „.keys” na końcu adresu URL profilu Github, na przykład:

https://github.com/tjmcewan.keys


To jest naprawdę interesujące. Do czego służy GitHub?
richardneish

Wygoda. :) W końcu jest to klucz publiczny - ma być udostępniany. Teraz o wiele łatwiej jest pobrać nowy klucz współpracownika i dodać go do serwerów. Zapisuje wiadomość e-mail w przód iw tył.
tjmcewan

Nie zdawałem sobie sprawy, że to zrobili.
Zeb

1
+1 za interesujące znalezisko na Github.
Raymond Tau

5

Chociaż z reguły nie zalecam umieszczania własnej konfiguracji w publicznych repozytoriach projektów (zakładając, że repo jest przeznaczone dla wszystkich, a twoja konfiguracja jest tylko dla ciebie , to tylko trochę niegrzeczne), wpływ na bezpieczeństwo jest minimalny.

Jedynym rozsądnym wektorem ataku jest wykorzystanie tego klucza publicznego do identyfikacji użytkownika w złośliwym kontekście. To może być poza mną, ale klucz publiczny jednoznacznie identyfikuje klucz prywatny, chociaż nie daje żadnych wskazówek co do jego pochodzenia.

Istnieje wektor ataku przypadkowego, który prawdopodobnie nie ma zastosowania, ale jeśli przypomnisz sobie fiasko, w którym Debian przypadkowo złamał PRNG openssl , każdy klucz ssh wygenerowany w systemie, którego dotyczy problem, jest łatwo przewidywalny i można go zidentyfikować za pomocą klucza publicznego. W takim przypadku opublikowanie klucza publicznego może wpędzić cię w kłopoty. Lub bardziej odpowiednio, użycie tego klucza do czegokolwiek może wpędzić cię w kłopoty.


wektor 1. co powiesz na kolizję odcisków palców? jest znacznie krótszy niż sam klucz publiczny; atak 2 mim typu „serwer oops musiał zostać ponownie zainstalowany, ma inny klucz, ale i tak zaloguj się” i udane uwierzytelnienie dla kluczy publicznych danego użytkownika (jeśli to możliwe, nie jestem pewien)

1

Tak, możesz opublikować swój klucz publiczny SSH. I możesz opublikować odcisk palca serwera za pomocą rekordu SSHFP w DNS! Może to być bardzo przydatne, na przykład, jeśli musisz zaktualizować / zmienić klucz SSH serwera.

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.