Obecnie mam Ubuntu Server 12.04 z OpenSSH wraz z Sambą i kilkoma innymi usługami. Obecnie mam skonfigurowane uwierzytelnianie za pomocą klucza publicznego i zastanawiam się, czy można skonfigurować uwierzytelnianie dwuskładnikowe? Patrzyłem na Google Authenticator, którego obecnie używam na moim koncie Gmail.
Znalazłem moduł PAM, który wygląda na zgodny, jednak wydaje się, że musisz użyć hasła i wygenerowanego kodu.
Zastanawiam się, czy istnieje sposób na użycie aplikacji Google Authenticator (lub czegoś podobnego) wraz z moim kluczem publicznym do uwierzytelnienia na moim serwerze SSH?
ssh
authentication
public-key
two-factor
Betonowy osioł
źródło
źródło
Odpowiedzi:
Red Hat dodał łatkę do OpenSSH w RHEL (i dlatego CentOS) 6.3, aby wymagać wielu mechanizmów uwierzytelniania, dzięki czemu możesz zrobić coś takiego:
Niewiele więcej szczegółów można znaleźć w informacjach o wersji .
Niestety ta funkcja nie wydaje się być dostępna w OpenSSH ani w Ubuntu 12.04, więc chyba, że chcesz znaleźć łatkę i ponownie skompilować OpenSSH, obawiam się, że nie masz szczęścia.
źródło
AuthenticationMethods
do określenia wielu wymaganych metod, dzięki czemu można wymagać zarówno klucza ssh, jak i PAM, przy czym PAM wykonuje koniec Google Authenticator.Szukasz Duo Security
źródło
Możesz użyć zarówno modułu PAM Google Authenticator, jak i kluczy publicznych, ale tylko jeden będzie jednocześnie używany do danego uwierzytelnienia. Oznacza to, że jeśli użytkownik zaloguje się przy użyciu autoryzowanego klucza publicznego, token nie będzie wymagany.
Lub, mówiąc inaczej: tokeny są wymagane tylko do uwierzytelnienia hasła, a nie klucze SSH.
Nawiasem mówiąc, to ograniczenie nie pochodzi z modułu Google Authenticator, ale z SSH, który implementuje tylko dwa czynniki uwierzytelniania (via
ChallengeResponseAuthentication
) dla PAM, ale nie wywołuje PAM, gdy podany jest prawidłowy klucz publiczny.źródło
AuthenticationMethods
konfiguracyjny, który może to odwrócić. Teraz możesz wymagać obu.To pytanie pochodzi z 2012 roku. Od tego czasu zmienił się SSH i wdrożono protokół SSH2.
W nowszych wersjach SSH (> = 6.2) man sshd_config wspomina:
Na tej stronie http://lwn.net/Articles/544640/ wspomniano również o możliwości jednoczesnego korzystania z klucza publicznego i uwierzytelniania PAM.
źródło
Wiem, że to pytanie jest trochę nieaktualne, ale ze względu na przyszłych ludzi (w tym mnie), którzy szukają rozwiązania, mówi się również o użyciu opcji ForceCommand w pliku sshd_config w celu uruchomienia skryptu, który następnie wykonuje uwierzytelnienie. Jest tutaj przykładowy skrypt , który możesz nieco zmodyfikować do swoich potrzeb, chociaż w tym przykładzie wywołuje go z pliku autoryzowanego_klucza zamiast uczynić go ogólnosystemowym za pomocą ForceCommand sshd_config.
źródło
Zdobądź YubiKey i postępuj zgodnie z tym przewodnikiem http://berrange.com/posts/2011/12/18/multi-factor-ssh-authentication-using-yubikey-and-ssh-public-keys-together/
AFAIK, jest to najlepszy sposób na wdrożenie Yubikey na serwerze w celu uzyskania dostępu SSH. Powyższy przewodnik umożliwia korzystanie z klucza publicznego + yubikey, natomiast jeśli korzystasz z oficjalnego przewodnika ( http://code.google.com/p/yubico-pam/wiki/YubikeyAndSSHViaPAM ), nie działa on z public- klawisz.
Pozdrawiam, Vip
źródło
Jeśli ustawisz hasło dla klucza prywatnego, to masz już uwierzytelnianie dwuskładnikowe. Aby się zalogować, ludzie będą potrzebować:
źródło