ssh-copy-id a kopiowanie ręczne id_rsa.pub

Z dnia na dzień serwer naszej firmy zaczął prosić mnie o hasło SSH.

Pierwszą rzeczą, którą sprawdziłem, było sprawdzenie, czy mój klucz znajduje się w .ssh/authorized_keys na serwerze. Mój klucz był w środku, nic się nie zmieniło. Również w /etc/ssh/sshd_config nic się nie zmieniło.

Następnie próbowałem wykonać tę procedurę na świeżo zainstalowany serwer Ubuntu16. Po wykonaniu tych 5 kroków nowy serwer ponownie poprosił mnie o hasło SSH.

Polecenie ssh-copy-id w końcu wykonało logowanie bezkluczykowe SSH, ale zauważyłem, że .ssh/authorized_keys ma trzy wiersze: jedną zaczynającą się od ssh-dss i 2x zaczynającą się od ssh-rsa

Teraz pamiętam, że 5-etapowa procedura z powyższego linku działała w przeszłości tylko z jednym kluczem.

Czy ostatnio coś się zmieniło? Dlaczego powyższa procedura już nie działa?

Edycja: ponieważ ssh-copy-id kopiuje łącznie 3 klucze do .ssh/authorized_keys tych kluczy można znaleźć w następujących plikach:

~/.ssh/id_dsa

~/.ssh/sshkey.pub

~/.ssh/id_rsa.pub

więc usunąłem wiersz po wierszu ze zdalnego pliku „s .ssh/authorized_keys

usunięto wiersz ~/.ssh/id_dsa – automatyczne logowanie powiodło się

usunięto wiersz ~/.ssh/id_rsa.pub – automatyczne logowanie powiodło się

usunięto ~/.ssh/sshkey.pub wiersz – automatyczne logowanie nie powiodło się – zapytano o hasło

Potrzebna jest tylko treść z ~/.ssh/sshkey.pub. Dlaczego SSH porównuje sshkey.pub, a nie id_rsa.pub jak w przykładzie z samouczka online?

Komentarze

  • Na pewno nie z powodu jakichkolwiek fundamentalnych zmian w pliku allowed_keys lub obudziłem się pewnego dnia i okazało się, że nie mam dostępu do całej masy maszyn.
  • jaki rodzaj klucza i ile bitów? serwer, z którym ' masz problemy, może mieć wyższe standardy, prawdopodobnie z powodu aktualizacji sshd. 1024-bitowy RSA był uznawany za akceptowalny. obecnie wymagane jest 2048 lub 4096 bitów.
  • również, dodaj wynik ssh -v your-remote-server do swojego pytania.
  • Czy nadal masz 640 flag na kluczach autoryzowanych czy coś bardziej restrykcyjnego (600)?

Odpowiedź

Wygląda na to, że ssh-copy-id to tylko wygodna funkcja. Sprawdza, czy klucze zostały już wyeksportowane do komputera, w razie potrzeby tworzy katalog .ssh, ale po prostu dodaje klucze publiczne do .ssh/authorized_keys . ssh-copy-id to skrypt powłoki (w openssh), więc możesz na końcu odczytać jego kod (vi `which ssh-copy-id`):

[ "$DRY_RUN" ] || printf "%s\n" "$NEW_IDS" | \ ssh "$@" "exec sh -c "cd ; umask 077 ; mkdir -p .ssh && { [ -z ""`tail -1c .ssh/authorized_keys 2>/dev/null`"" ] || echo >> .ssh/authorized_keys ; } && cat >> .ssh/authorized_keys || exit 1 ; if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi"" \ || exit 1 

Podczas uwierzytelniania sprawdzane są tylko authorized_keys. Z dokumentacji openssh :

Plik ~ / .ssh / allowed_keys zawiera listę publiczną klucze, które są dozwolone do logowania. Gdy użytkownik się loguje, program ssh informuje serwer, której pary kluczy chciałby użyć do uwierzytelnienia. Klient udowadnia, że ma dostęp do klucza prywatnego, a serwer sprawdza, czy odpowiedni klucz publiczny jest upoważniony do akceptacji konta.

Mam nadzieję, że odpowiedź tytuł twojego pytania „ssh-copy-id a ręczne kopiowanie id_rsa.pub”. Ten plik ~/.ssh/sshkey.pub Nie mam, więc mam nadzieję, że samodzielnie rozwiązałeś problemy z konfiguracją. W każdym razie tak, możesz po prostu ręcznie skopiować klucz publiczny do authorized_keys nie używa ssh-copy-id.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *