Używanie tego samego klucza prywatnego SSH na wielu komputerach

23

Mam repozytorium Github, do którego chcę uzyskać dostęp z dwóch różnych maszyn Linux.

W przypadku pierwszego komputera postępowałem zgodnie z instrukcjami Githuba dotyczącymi generowania kluczy SSH i dodałem wynikowy klucz publiczny do Github. Ten klient działa dobrze.

W przypadku drugiego klienta skopiowałem /home/{user}/.ssh/id_rsaplik z pierwszego klienta. Myślałem, że to może być wszystko, co musiałem zrobić, ale kiedy próbuję się połączyć, pojawia się komunikat „Odmowa zezwolenia (publickey)”.

czego mi brakuje?

Yarin
źródło

Odpowiedzi:

32

Z tego samego klucza SSH można korzystać z wielu klientów. Mam różne klucze SSH dla różnych sieci i są one faktycznie przechowywane na zaszyfrowanym dysku USB, którego używam z kilku różnych komputerów bez problemu.

SSH jest bardzo wybredny o uprawnieniach plików więc chciałbym najpierw sprawdzić wszelkie uprawnienia z /home/{user}całą drogę w dół do id_rsasamego pliku.

SSH tak naprawdę nie dba o uprawnienia do zapisu grupowego lub światowego, więc upewnij się, że masz chmod go-wswój katalog domowy i ~/.sshkatalog na początek. Upewnij się również, że są własnością Twojego użytkownika chown ${USER}:${USER}.

Dla samego klucza SSH ja chmod 600im ...

Jeśli chcesz, mam dodatkowe informacje na temat zarządzania kluczami SSH w mojej odpowiedzi na inne pytanie SSH.

Jeremy Bouse
źródło
3
To były uprawnienia - Nie muszę powtarzać, ale bardzo dziękuję
Yarin
6

Jeśli otrzymujesz odmowę dostępu po stronie Githuba, może to oznaczać, że nie odbiera skopiowanego pliku klucza SSH, a raczej domyślny system. Prostym sposobem na obejście tego jest utworzenie ~/.ssh/configpliku i umieszczenie w nim następujących elementów:

Host github.com
  Hostname      github.com
  User          git
  IdentityFile  ~/.ssh/yourkeyfile

Zmusi to twojego klienta SSH do używania tego klucza tylko dla github.com.

Mam nadzieję że to pomoże.

vmfarms
źródło
2
Nie mam jeszcze opinii, aby głosować, ale dziękuję
Yarin
1

Wiem, że to stare, ale pomyślałem, że muszę również skopiować klucz publiczny do drugiego klienta

(lub ponownie oblicz to za pomocą ssh-keygen -y -f ~ / .ssh / id_rsa_ ..> ~ / .ssh / id_rsa ... pub)

Od 1]:

  1. Metoda uwierzytelnienia klucza publicznego: „publickey”

    Jedyną WYMAGANĄ „nazwą metody” uwierzytelnienia jest „publickey”
    . Wszystkie implementacje MUSZĄ obsługiwać tę metodę;
    jednak nie wszyscy użytkownicy muszą mieć klucze publiczne, a większość lokalnych
    zasad prawdopodobnie nie będzie wymagać uwierzytelnienia klucza publicznego dla wszystkich
    użytkowników w najbliższej przyszłości.

    Dzięki tej metodzie posiadanie klucza prywatnego służy jako
    uwierzytelnienie. Ta metoda działa, wysyłając podpis utworzony
    za pomocą klucza prywatnego użytkownika. Serwer MUSI sprawdzić, czy klucz
    jest prawidłowym wystawcą uwierzytelnienia dla użytkownika i MUSI sprawdzić, czy
    podpis jest prawidłowy. Jeśli oba są wstrzymane, Żądanie uwierzytelnienia MUSI zostać
    zaakceptowane; w przeciwnym razie MUSI zostać odrzucony. Pamiętaj, że serwer MOŻE
    wymagać dodatkowych uwierzytelnień po udanym uwierzytelnieniu.

Twój klient ssh rozpoczyna uwierzytelnianie, wysyłając klucz publiczny (podpis pogrubiony powyżej) na serwer. Serwer, jeśli klucz publiczny jest kluczem autoryzowanym, wysyła losowy identyfikator sesji z powrotem do klienta. Następnie klient koduje ten identyfikator sesji za pomocą klucza prywatnego i odsyła go z powrotem na serwer. Serwer dekoduje ten identyfikator sesji za pomocą klucza publicznego, a jeśli jest on zgodny z oryginalnym identyfikatorem sesji, następnie uwierzytelnia klienta.

[1] [ http://www.openssh.org/txt/rfc4252.txt][1]

Kościół Jakuba
źródło
0

Prawdopodobnie dlatego, że nie skopiowałeś uprawnień do pliku na drugim kliencie.
Ale klucz prywatny jest prywatny , właściwym sposobem jest utworzenie nowego klucza prywatnego na drugim kliencie, a następnie dodanie jego klucza publicznego do Github

promień
źródło
Planowałem zrobić 1 parę kluczy na użytkownika dla wielu klientów każdego użytkownika. Ale wydaje mi się, że para kluczy dla każdego klienta każdego użytkownika wymknie się spod kontroli ...?
Yarin
Jeśli używasz tego samego klucza prywatnego dla każdego użytkownika na każdym komputerze, wydaje się to w porządku. Po prostu sprawdź uprawnienia, jeśli kopiujesz przy użyciu scp z flagą -p, powinno być w porządku
promień