Po raz pierwszy korzystam z GitHub i nie mam doświadczenia w korzystaniu z konsoli. Korzystam z MacBooka z Bash. Kiedy próbuję uzyskać dostęp do GitHub, otrzymuję to:
git clone git@github.com:dhulihan/league-of-legends-data-scraper.git
Cloning into 'league-of-legends-data-scraper'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Próbowałem postępować zgodnie z instrukcjami na stronie Github dotyczącymi odmowy udzielenia pozwolenia.
Kiedy używam ssh -vT [email protected]
, otrzymuję następujące informacje:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
debug1: identity file /Users/XXXX/.ssh/id_rsa type -1
debug1: identity file /Users/XXXX/.ssh/id_rsa-cert type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/XXXX/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/XXXX/.ssh/id_rsa
debug1: Trying private key: /Users/XXXX/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).
Następnie eval "$(ssh-agent -s)"
zwraca „Pid agenta 2314”, ale ssh-add -l
zwraca „Agent nie ma tożsamości”.
I w tym utknąłem.
bash
github
ssh
permission-denied
public-key
Ciemny
źródło
źródło
Odpowiedzi:
Pełne szczegóły w tej odpowiedzi .
Podsumowując, gdy
ssh-add -l
powróci „Środek nie ma tożsamości”, oznacza to, że klucze używane przezssh
(przechowywane w plikach, takich jak~/.ssh/id_rsa
,~/.ssh/id_dsa
etc.) są albo brakuje, są one nie wiadomossh-agent
, co jest czynnikiem uwierzytelniania, albo że ich uprawnienia są ustawione niepoprawnie (na przykład świat do zapisu).Jeśli brakuje twoich kluczy lub ich nie wygenerowałeś, użyj
ssh-keygen -t rsa
, a następnie,ssh-add
aby je dodać.Jeśli klucze istnieją, ale nie są znane
ssh-agent
(na przykład jeśli znajdują się w niestandardowym folderze),ssh-add /path/to/my-non-standard-ssh-folder/id_rsa
dodaj je za pomocą.Zobacz tę odpowiedź, jeśli masz problemy z
ssh-add
lubssh-agent
.źródło
ssh-add /path/to/keyX
dla każdego, szczególnie jeśli mają niestandardowe nazwy. Szczegóły tutaj: stackoverflow.com/questions/3225862/ ... (miła odpowiedź)ssh-add
ponownie po rozwiązaniu części problemu z uprawnieniami. Po tymssh -vT [email protected]
nie zadziałało. Musiałem dodać bezwzględną ścieżkę, jak wspomniany powyżej komentator. Potem był już sos.Spróbuj tego:
pracował dla mnie
źródło
chmod 600 ~/.ssh/id_rsa
więcssh-add ~/.ssh/id_rsa
ODPOWIEDŹ 2019 dla macOS Sierra, High Sierra i Catalina:
PS: w przypadku większości innych odpowiedzi musisz utworzyć nowy klucz ssh ... ale nie musisz tego robić :)
Jak opisano szczegółowo na https://openradar.appspot.com/27348363 , macOS / OS X do Yosemite używał do zapamiętania kluczy SSH dodanych poleceniem
ssh-add -K <key>
Oto 4 kroki, które musiałem wykonać, aby zadziałało:
1:
ssh-add ~/.ssh/PATH_TO_YOUR_SSH_PRIVATE_KEY (e.g. ~/.ssh/id_rsa)
2: Dodaj następujące elementy
~/.ssh/config
3: upewnij się, że usunąłeś wszystkie wpisy gitconfig, które używają pomocnika osxkeychain:
4: zrestartuj terminal, aby to zadziałało.
źródło
Przez chwilę utknąłem w tym samym problemie, który ostatecznie rozwiązałem.
Mój problem : nie mogłem wykonać żadnego pchnięcia. Mogłem sprawdzić i zobaczyć mojego pilota (używając
git remote -v
), ale kiedy wykonałemgit push origin master
, zwrócił:Permission denied (publickey). fatal: Could not read from remote repository.
i tak.Jak to rozwiązałem:
ssh-keygen -t rsa
. Podanie nazwy pliku klucza (gdy pojawi się pytanie) było bezużyteczne.ssh-add /Users/federico/.ssh/id_rsa
, który pomyślnie zwróconyIdentity added: /Users/myname/.ssh/id_rsa (/Users/myname/.ssh/id_rsa)
ssh-add -l
polecenie działało / wydawało się przydatne (po wykonaniu poprzednich kroków), pomyślnie zwróciło mój klucz. Ostatni krok pokazuje, gdzie sprawdzić swój klucz publiczny na stronie GitHub. A ta komenda pomoże Ci sprawdzić wszystkie klawisze:ls -al ~/.ssh
.Wtedy polecenie push w końcu zadziałało!
Mam nadzieję, że to pomoże ! Powodzenia wszystkim.
źródło
Uruchom następujące polecenia:
Przejdź do swojego konta Github: https://github.com/settings/profile
1) Kliknij: klucze SSH i GPG
2) Nowy klucz SSH i wklej go tam
3) Dodaj klucz SSH
Gotowe!
źródło
przede wszystkim musisz przejść do katalogu ssh
dla tego typu po poleceniu w terminalu w mac lub czymkolwiek, czego używasz w oknie
teraz znajduje się w ssh,
tutaj możesz znaleźć wszystkie klucze / pliki ssh związane ze wszystkimi projektami. teraz wpisz następujące polecenie, aby pokazać, czy dostępny jest jakikolwiek klucz ssh
to pokaże ci wszystkie dostępne ssh, w moim przypadku były
teraz dwa , będziesz musiał uruchomić agenta, aby dodać do niego ssh. Dla tego typu następujące polecenie
teraz na koniec dodasz ssh do tego typu agenta po poleceniu
zastąpić
źródło
Może to spowodować, że w przypadku każdego nowego terminala identyfikator agenta będzie inny. Musisz dodać klucz prywatny dla agenta
źródło
Dodatkowym elementem, który zdałem sobie sprawę, jest to, że zwykle folder .ssh jest tworzony w folderze głównym w systemie Mac OS X / Users /. Jeśli spróbujesz użyć ssh -vT [email protected] z innego folderu, spowoduje to błąd, nawet jeśli dodałeś prawidłowy klucz.
Musisz ponownie dodać klucz (ssh-add 'poprawna ścieżka do id_rsa') z bieżącego folderu, aby pomyślnie się uwierzytelnić (zakładając, że przesłałeś już klucz do swojego profilu w Git)
źródło
To zadziałało dla mnie:
chmod 700 .ssh chmod 600 .ssh/id_rsa chmod 644 .ssh/id_rsa.pub
Następnie wpisz:
ssh-add ~/.ssh/id_rsa
źródło
~/.ssh
uprawnień. Mimo to możesz znacznie poprawić swoją odpowiedź, dodając pełne polecenie (tutajchmod
) i wyjaśniając, co to robi i dlaczego jest potrzebne.Po długich zmaganiach w końcu udało mi się rozwiązać ten problem w systemie Windows, Dla mnie zmienna środowiska użytkownika GIT_SSH została ustawiona na
który został zainstalowany wraz z WinScp. Zmieniłem wskazanie, aby użyć domyślnego ssh.exe, który jest dostarczany z git-scm „C: \ Program Files \ Git \ usr \ bin \ ssh.exe”
źródło
Kroki dla BitBucket:
jeśli nie chcesz generować nowego klucza, SKIP ssh-keygen
Skopiuj klucz publiczny do schowka:
Zaloguj się do zasobnika bitów: Przejdź do Wyświetl profil -> Ustawienia -> Klucze SSH (na karcie Zabezpieczenia) Kliknij Dodaj klucz, Wklej klucz w polu, dodaj opisowy tytuł
Wróć do Git Bash:
Powinieneś wziąć :
Teraz:
git pull
powinno działaćźródło
Miałem ten problem po przywróceniu dysku twardego z kopii zapasowej.
Mój problem: mogłem sprawdzić i zobaczyć mojego pilota (używając git remote -v), ale kiedy wykonałem git push origin master, zwrócił: Permission denied (publickey). krytyczny: nie można odczytać ze zdalnego repozytorium.
Miałem już folder SSH i klucze SSH, a dodanie ich przez Terminal (
ssh-add /path/to/my-ssh-folder/id_rsa
) pomyślnie dodało moją tożsamość, ale nadal nie mogłem wypchnąć i nadal otrzymałem ten sam błąd. Wygenerowanie nowego klucza było dla mnie złym pomysłem, ponieważ był powiązany z innymi bardzo bezpiecznymi uprawnieniami w AWS.Okazało się, że połączenie między kluczem a moim profilem na Githubie zostało zerwane.
Rozwiązanie: ponowne dodanie klucza do Github w Profil> Ustawienia> Klucze SSH i GPG rozwiązało problem.
Ponadto: moje konto miało skonfigurowane uwierzytelnianie dwuskładnikowe. W takim przypadku, jeśli Terminal żąda poświadczeń, użyj swojej nazwy użytkownika - ale NIE hasła Github. W przypadku uwierzytelniania dwuskładnikowego musisz użyć swojego kodu uwierzytelniającego (dla mnie został on wygenerowany przez Authy na moim telefonie i musiałem go skopiować do terminala dla pw).
źródło