“ Odmowa dostępu (publickey) ” za każdym razem, gdy próbuję wysłać do git

Niedawno napotkałem problem: za każdym razem, gdy próbuję przesłać dane do repozytorium git (w moim przypadku Bitbucket), pojawia się ten błąd:

$ git push origin master [email protected]: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

Znalazłem sposób, aby rozwiązać ten problem, uruchamiając następujące polecenia:

eval `ssh-agent` ssh-add -l ssh-add ~/.ssh/id_rsa 

Jeśli to zrobię, spróbuję git push origin master, to będzie działać. Ale problem polega na tym, że ten problem zaczyna się pojawiać po pewnym czasie (prawdopodobnie po restarcie, nie jestem pewien, co powoduje jego ponowne pojawienie się). UPD: najprawdopodobniej nie jest to spowodowane ponownym uruchomieniem, ponieważ właśnie się z nim zmierzyłem 10 minut po wykonaniu powyższego kodu i otrzymałem ten sam błąd. Od tego czasu nie uruchamiałem ponownie laptopa.

Co może powodować takie zachowanie i jak mogę to naprawić?

Komentarze

Odpowiedź

Myślę, że dzieje się tak, ponieważ podczas generowania klucza ssh wprowadziłeś hasło bezpieczeństwa. Kiedy uruchamiasz ssh-agent i dodajesz ssh / rsa_id, powinno to być tak samo jak hasło.

[root@user xxxxx]# eval "$(ssh-agent -s)" Agent pid 12082 [root@user xxxxx]# ssh-add /home/user/.ssh/id_rsa Enter passphrase for /home/user/.ssh/id_rsa: Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa) git push -u origin master Counting objects: 94, done. 

Odpowiedź

OK, zapomniałem opublikować problem: przez przypadek ustawiłem swój klucz na inny serwer dla wszystkich hostów w ~/.ssh/config. Więc użył go do połączenia się wszystkie hosty zamiast właściwego. Usunąłem go dla wszystkich hostów i ustawiłem tylko dla tych hostów, które wymagały tego klucza, i naprawiłem go.

Mam nadzieję, że będzie to pomocne dla innych.

Dodaj komentarz

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