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_rsa
plik 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?
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/config
pliku i umieszczenie w nim następujących elementów:Zmusi to twojego klienta SSH do używania tego klucza tylko dla github.com.
Mam nadzieję że to pomoże.
źródło
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]:
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]
źródło
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
źródło