Skocz do zawartości
Zaloguj się, aby obserwować  
PapaSmerf

Keychain + SSH passphrase a restart systemu

Polecane posty

Chłopaki,

jest sobie jeden serwer, na którym śmiga sobie tak naprawdę tylko jedna aplikacja, będąca częścią większego systemu.

Logowanie po SSH dostępne tylko za pomocą klucza, klucz ma ustawione hasło. Problem w tym, że zadania cron uruchamiają skrypty PHP/Python, które mają za zadania sprawdzanie prywatnych repozytoriów Github/Bitbucket, łączą się poprzez SSH.

Zainstalowałem Keychain, skonfugurowałem zgodnie z tym poradnikiem. Wszystko działa dobrze. Baa, nawet rozumiem zasadę działania Keychain'a.

 

Pojawił się tylko jeden, mały, acz dosyć istotny problem - reboot. Po restarcie systemu, Keychain oczywiście... pyta o hasło dla klucza prywatnego, co raczej nie jest tym co chciałem osiągnąć.

 

W pliku .bash_profile mam:

eval `keychain --eval --agents ssh id_rsa`
source $HOME/.keychain/$HOSTNAME-sh

wcześniej wołałem Keychani'a ciutkę inaczej, ale też bez rezultatu:

keychain --clear $HOME/.ssh/id_rsa
source $HOME/.keychain/$HOSTNAME-sh

Teraz zestaw pytań:

- czy Keychain powinien tak się zachowywać? Jeśli nie, jak naprawić?

- czy znacie inne metody na zapamiętanie hasła do klucza prywatnego, a nie zmniejszające w sposób drastyczny bezpieczeństwa?

 

Pozdrawiam,

A

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak chcesz zapamiętywać na serwerze passphrase do klucza prywatnego...

... to nie kłopocz się. Odbezpiecz klucz i tyle.

To tak, jak byś w portfelu trzymał kartę kredytową i obok do niej PIN.

Możesz co prawda zapisać ten PIN w formie "zaszyfrowanej" - np. przesunięty o jedną cyfrę.

No ale wtedy i tak jak chcesz komuś innemu umożliwić skorzystanie z karty, to musisz to powiedzieć.

 

Tak samo tutaj - możesz umieścić klucz w szyfrowanej bazie. Wtedy nawet, jeśli ktoś skopiuje plik z bazą, to haseł nie wydobędzie.

 

Ale jeśli serwer sam z siebie będzie mógł odszyfrować bazę haseł, to oznacza, że dowolny inny napastnik także, wykonując te same kroki co serwer w trakcie startu ;)

Edytowano przez kafi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak samo tutaj - możesz umieścić klucz w szyfrowanej bazie. Wtedy nawet, jeśli ktoś skopiuje plik z bazą, to haseł nie wydobędzie.

 

kafi, dzięki za odpowiedź ;)

 

Zdaję sobie sprawę, z tego, jak to z założenia działa, tylko wiesz, logowanie się codziennie o 24.00, żeby podać hasło do klucza nie jest zbyt wygodnym rozwiązaniem, nie chcę robić za manualnego crona :D

 

Jakieś pomysły/sugestie jak ewentualnie taki problem obejść?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A co ty tak właściwie chcesz zrobić? Automatyczny deploy aplikacji?

Wtedy to lepiej hooki udostępniane przez githuba wykorzystać chyba.

 

W każdym razie - rozważ takie coś. Załóżmy, że obecny user nazywa się staryUser.

Kreujesz sobie nowego użytkownika, ustawiasz mu klucz RSA, ale bez passphrase.

Konfigurujesz sobie sudo, które umożliwi ci wykonywanie poleceń przez tylko staryUser.

Dodatkowo ograniczasz polecenia dostępne przez sudo do np. tylko git.

 

W wyniku masz użytkownika staryUser który ma pełne uprawnienia,

i masz użytkownika nowyUser który może w sposób ograniczony wykonywać operacje staregoUsera.

 

Troszkę na pierwszy rzut oka zagmatwane, ale wbrew pozorom bardzo proste :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A co ty tak właściwie chcesz zrobić? Automatyczny deploy aplikacji?

Wtedy to lepiej hooki udostępniane przez githuba wykorzystać chyba.

 

W każdym razie - rozważ takie coś. Załóżmy, że obecny user nazywa się staryUser.

Kreujesz sobie nowego użytkownika, ustawiasz mu klucz RSA, ale bez passphrase.

Konfigurujesz sobie sudo, które umożliwi ci wykonywanie poleceń przez tylko staryUser.

Dodatkowo ograniczasz polecenia dostępne przez sudo do np. tylko git.

 

W wyniku masz użytkownika staryUser który ma pełne uprawnienia,

i masz użytkownika nowyUser który może w sposób ograniczony wykonywać operacje staregoUsera.

 

Troszkę na pierwszy rzut oka zagmatwane, ale wbrew pozorom bardzo proste :)

 

Nie, nie deploy ;) Raczej o klonowanie określonych repozytoriów Git z Githuba i Butbucketa.

 

Całkiem ciekawy pomysł, pobawię się jutro. Dzięki za odpowiedź.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×