# SSH bez haseł

## Yatmai

Coś mi świta że jest możliwość wybrania maszyn, które będą mogły się łączyć przez ssh bez hasła. Niestety man sshd i gentoo-wiki zbyt łaskawe dla mnie nie były, więc miałbym prośbę o nakierowanie jak takie cuś wykonać  :Wink: 

----------

## Piecia

Mi się wydaje że mowa jest o kluczach. Uruchomić drugi serwer na innym porcie(edit:nie wiem dlaczego wspomniałem o 2 serwerze), logowanie przez klucze na które nie są założone hasła i możliwość logowania tylko z określonych miejsc. Ale może jest jeszcze inny sposób...Last edited by Piecia on Wed May 30, 2007 1:00 pm; edited 1 time in total

----------

## lazy_bum

 *Yatmai wrote:*   

> Coś mi świta że jest możliwość wybrania maszyn, które będą mogły się łączyć przez ssh bez hasła. Niestety man sshd i gentoo-wiki zbyt łaskawe dla mnie nie były, więc miałbym prośbę o nakierowanie jak takie cuś wykonać ;)

 

http://gentoo-wiki.com/SECURITY_SSH_without_a_password -- a mi znalazło takie o. (-;

----------

## Yatmai

@lazy_burn no ja szukałem po "ssh rsa"  :Wink:  niemniej dzięki  :Smile: 

sęk w tym, że znalazłem jeszcze gdzieś na googlach wzmiankę o tym. w obu przypadkach chodzi o to samo -> wygenerować klucz, a potrem przesłać na drugi komputer... zrobiłem to w dwie strony, z serwera na desktop (oba mają te same ssh_config i sshd_config) w ogóle nie załapało, z desktopa na serwer coś poszło, ale teraz zamiast o hasło prosi o passphase.... który ma ze 40 znaków, więc dla mnie interes to żaden  :Very Happy: 

----------

## quosek

czyli w pierwszym przypadku cos zjebles, w drugim zrobiles oki (uprawnienia ?)

jezeli nie chcesz by pytalo o haslo do klucza, to po prostu je usun (fakt - mniej bezpiecznie, ale .... )

i chyba [SOLVED]

----------

## kurak

Kiedyś znalazłem taki fajny opis, jak zrobić właśnie to o czym mówisz, ja mam tak zrobione po LANie, na serwer się loguje w ten sposób i wszystko działa bardzo fajnie (nawet jak zmienię hasło, to nie rząda ode mnie) ale ni cholery nie mogę tego wygrzebać..

----------

## arek.k

Nie będę się tu wymądrzał (mam nadzieję), bo nie czuję się specjalistą w tej sprawie, ale ostatnio się tym bawiłem, więc jestem na bieżąco. Może to coś rozjaśni.

 *Yatmai wrote:*   

> sęk w tym, że znalazłem jeszcze gdzieś na googlach wzmiankę o tym. w obu przypadkach chodzi o to samo -> wygenerować klucz, a potrem przesłać na drugi komputer...

  Dokładniej chodzi o wygenerowanie pary kluczy. Może chodziło ci o to samo, ale nie jest bez znaczenia który z kluczy ma być na serwerze (publiczny, dodany do ~/.ssh/authorized_keys), a który na kliencie (~/.ssh/id_dsa).

Oczywiście to przykład dla kluczy dsa (rsa nie generowałem, więc nie pamiętam szczegółów).

 *Yatmai wrote:*   

> zrobiłem to w dwie strony, z serwera na desktop (oba mają te same ssh_config i sshd_config) w ogóle nie załapało,

  Z tego co mi wiadomo, to aby korzystać z autoryzacji przez klucze trzeba skompilować ssh z flagą pam (ponieważ autoryzacja jest właśne przez pam dokonywana). Nie pamiętam teraz, ale może chodzi po prostu o jakiś wpis w /etc/pam.d/sshd (jeśli skompilowałeś z pam).

 *Yatmai wrote:*   

> z desktopa na serwer coś poszło, ale teraz zamiast o hasło prosi o passphase.... który ma ze 40 znaków, więc dla mnie interes to żaden 

  Nie wiem jak jest z rsa, ale (dla dsa) po co zabezpieczałeś (szyfrowałeś) klucz hasłem (passphase)? Jeśli nie chcesz go wpisywać, to stwórz parę kluczy niezabezpieczonych, a nie będzie pytał o passphase. Oczywiście obniżasz w ten sposób bezpieczeństwo, ale czy aż tak znacznie (ja uważam, że nie). Jest to zabezpieczenie na wypadek utraty klucza prywatnego (z tego co mi wiadomo), więc ktoś musiał by dostać twój klucz prywatny i wiedzieć z jakim serwerem się łączyć. Oczywiście może coś pomijam i jest to realne zagrożenie.

Oczywiście jeśli już jesteś takim paranoikiem, to zawsze pozostaje jeszcze ssh-agent i keychain. Ja staram sie pilnować klucza i nie zabezpieczam go dodatkowo (może to błąd).

Cała sprawa zarządzania kluczami jest opisana IMHO dobrze w dokumentacji: Zarządzanie kluczami OpenSSH, Część 1 Część 2 Część 3, jak również na gentoo-wiki: jeden i drugi.

----------

## Raku

 *arek.k wrote:*   

> Dokładniej chodzi o wygenerowanie pary kluczy. Może chodziło ci o to samo, ale nie jest bez znaczenia który z kluczy ma być na serwerze (publiczny, dodany do ~/.ssh/authorized_keys), a który na kliencie (~/.ssh/id_dsa).
> 
> Oczywiście to przykład dla kluczy dsa (rsa nie generowałem, więc nie pamiętam szczegółów).

 

Nie ma znaczenia, czy stosujesz RSA czy DSA - oba typy kryptografii są asymetryczne (czyli bazują na kluczu publicznym i prywatnym). Klucz prywatny powinien  być znany wyłącznie właścicielowi, więc klucz publiczny należy umieszczać na zdalnych serwerach.

 *Quote:*   

> Z tego co mi wiadomo, to aby korzystać z autoryzacji przez klucze trzeba skompilować ssh z flagą pam (ponieważ autoryzacja jest właśne przez pam dokonywana). Nie pamiętam teraz, ale może chodzi po prostu o jakiś wpis w /etc/pam.d/sshd (jeśli skompilowałeś z pam).

 

IMO nie jest to konieczne. Wydaje mi się, że na części serwerów miałem w SSH pam wyłączony (co uniemożliwiało dostęp do serwera poprzez login i hasło) a autoryzacja po kluczu to zupełnie inna opcja w konfigu demona ssh.

 *Quote:*   

>  *Yatmai wrote:*   z desktopa na serwer coś poszło, ale teraz zamiast o hasło prosi o passphase.... który ma ze 40 znaków, więc dla mnie interes to żaden   Nie wiem jak jest z rsa, ale (dla dsa) po co zabezpieczałeś (szyfrowałeś) klucz hasłem (passphase)? Jeśli nie chcesz go wpisywać, to stwórz parę kluczy niezabezpieczonych, a nie będzie pytał o passphase. Oczywiście obniżasz w ten sposób bezpieczeństwo, ale czy aż tak znacznie (ja uważam, że nie). Jest to zabezpieczenie na wypadek utraty klucza prywatnego (z tego co mi wiadomo), więc ktoś musiał by dostać twój klucz prywatny i wiedzieć z jakim serwerem się łączyć. Oczywiście może coś pomijam i jest to realne zagrożenie.

 

alternatywą do braku passphrase jest korzystanie z ssh-agenta - Uruchamiasz agenta, podajesz hasło do klucza jednokrotnie, do momentu wylogowania z systemu (lub ubicia agenta) hasło jest pamiętane i można się logować bez konieczności każdorazowego wklepywania go.

Oczywiście 40 znaków nawet w wypadku ssh-agenta może być ciężkie   :Very Happy: 

EDIT - @arek.k: dopiero teraz doczytałem, że o ssh-agencie już napisałeś  :Smile: 

----------

## arek.k

 *Raku wrote:*   

> Nie ma znaczenia, czy stosujesz RSA czy DSA - oba typy kryptografii są asymetryczne (czyli bazują na kluczu publicznym i prywatnym). Klucz prywatny powinien  być znany wyłącznie właścicielowi, więc klucz publiczny należy umieszczać na zdalnych serwerach.

 

Oczywiście, że w obu przypadkach chodzi o parę kluczy. Mi raczej chodziło o to, że dla RSA nie pamietam nazw plików z kluczami.

 *Raku wrote:*   

> IMO nie jest to konieczne. Wydaje mi się, że na części serwerów miałem w SSH pam wyłączony (co uniemożliwiało dostęp do serwera poprzez login i hasło) a autoryzacja po kluczu to zupełnie inna opcja w konfigu demona ssh.

 

Rzeczywiście masz rację. Wyłączyłem autoryzację przez pam w sshd_config (i włączyłem przez klucze) i jest dokładnie tak jak napisałeś. Działa tylko auth przez klucze (przez hasło nie działa). Czyli pam rozszerza możliwości (znacznie), ale nie jest niezbędny.

Więc @Yatmai wobec tego jeśli korzystasz z pam to j.w., a jeśli nie, to sprawdź jeszcze, czy dopuszczasz autoryzację przez odpowiednie rodzaje kluczy w sshd_config.

Z mojego doświadczenia bowiem wynika, że autoryzacja przez klucze działa zawsze bezproblemowo, a wszystkie problemy jakie miałem wynikały z moich błędów. Nie ma ty jakichś sztuczek, które powodują zadziałanie. Wszystko jest w miarę proste i logiczne.

@Yatmai jeśli ci nie działa, to może popełniłeś ten sam idiotyczny błąd, co ja kiedyś (na szczęście w domu, więc nie było dużego zagrożenia), czyli dodałeś do authorized_keys klucz prywatny zamiast publicznego  :Wink:  (to mi jeszcze przyszło do głowy).

----------

## Raku

 *arek.k wrote:*   

>  *Raku wrote:*   Nie ma znaczenia, czy stosujesz RSA czy DSA - oba typy kryptografii są asymetryczne (czyli bazują na kluczu publicznym i prywatnym). Klucz prywatny powinien  być znany wyłącznie właścicielowi, więc klucz publiczny należy umieszczać na zdalnych serwerach. 
> 
> Oczywiście, że w obu przypadkach chodzi o parę kluczy. Mi raczej chodziło o to, że dla RSA nie pamietam nazw plików z kluczami.

 

zmieniasz dsa na rsa  :Smile: 

----------

