2012-03-05 18 views
17

Wygląda na to, że utraciłem moje uprawnienia do konta github po wysłaniu do niego z innego (lokalnego) repozytorium. Jestem teraz Otrzymuję następujący błąd:Uprawnienia błąd github (klucz ssh nie został rozpoznany)

git push 
Permission denied (publickey).fatal: 
The remote end hung up unexpectedly 

Następnie podjęła następujące kroki, aby zregenerować klucza:

ssh-keygen 
Set up an ssh on my account for this laptop, using id_rsa.pub 

Jednak ta nie powiodła się. Kiedy próbuję następującego sugerowanego kodu, pojawia się następujący błąd:

ssh-add -l 
Could not open a connection to your authentication agent. 

Jakieś myśli?

Odpowiedz

50

I rozwiązać ten problem po tym STEP- kroku instrukcje:

krok 1: Sprawdź kluczy SSH

$ cd ~/.ssh 
# Checks to see if there is a directory named ".ssh" in your user directory 
# If it says "No such file or directory" skip to step 3. Otherwise continue to step 2. 

Krok 2: kopii zapasowych i usunąć istniejące klucze SSH

$ ls 
# Lists all the subdirectories in the current directory 
# config id_rsa id_rsa.pub known_hosts 

$ mkdir key_backup 
# Makes a subdirectory called "key_backup" in the current directory 

$ cp id_rsa* key_backup 
# Copies the id_rsa keypair into key_backup 

$ rm id_rsa* 
# Deletes the id_rsa keypair 

Krok 3: wygenerować nowy SSH klucza

$ ssh-keygen -t rsa -C "[email protected]" 
# Creates a new ssh key using the provided email 

# Generating public/private rsa key pair. 
# Enter file in which to save the key (/home/you/.ssh/id_rsa):  
# Enter passphrase (empty for no passphrase): [Type a passphrase] 
# Enter same passphrase again: [Type passphrase again]  
# Your identification has been saved in /home/you/.ssh/id_rsa. 
# Your public key has been saved in /home/you/.ssh/id_rsa.pub. 
# The key fingerprint is: 
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected] 

Krok 4: Dodaj swój klucz SSH do GitHub

$ sudo apt-get install xclip 
# Downloads and installs xclip 

$ xclip -sel clip < ~/.ssh/id_rsa.pub 
# Copies the contents of the id_rsa.pub file to your clipboard 

Następnie przejdź do hithub i zrobić:

  1. przejdź do Ustawienia konta
  2. Kliknij „ssh Keys” w lewym pasku bocznym
  3. Kliknij przycisk „Dodaj klucza SSH”
  4. Wklej klucz do "klucz" field
  5. Kliknij przycisk "Dodaj klucz"
  6. potwierdzić działanie wpisując hasło GitHub

Krok 5: Test wszystko się

$ ssh -T [email protected] 
# Attempts to ssh to github 

Jeżeli ok, zobaczysz

Hi username! You've successfully authenticated, but GitHub does not 
# provide shell access. 

inaczej (to się stało ze mną), widać

Agent admitted failure to sign using the key. 
# debug1: No more authentication methods to try. 
# Permission denied (publickey). 

Aby rozwiązać ten problem

$ ssh-add 
# Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap] 
# Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa) 

Na oryginalnej informacji

https://help.github.com/articles/generating-ssh-keys

https://help.github.com/articles/error-agent-admitted-failure-to-sign

+0

ssh-add ma rzecz. Jeszcze raz dziękuję ... –

+0

Przepraszam, jak wpisać ścieżkę? moją ścieżką jest folder C: \ Documents and Settings \ admin \ .ssh. jaki jest format wpisywania ścieżki? – Thinkerer

+0

na twoim mac'u zamiast 'sudo apt-get install xclip' możesz potrzebować uruchomić 'brew install homebrew/emacs/xclip-mode' zamiast tego –

1

Musisz wyeksportować swój klucz na serwerze za pomocą komendy

ssh-copy-id [email protected] 

i ssh-agent należy uruchomić przed ssh-add. Możesz umieścić ten wiersz w /etc/rc.local jeśli jesteś pod Linuksem:

eval $(ssh-agent) 

Edit: teraz wiem, że używasz systemu Windows, więc zobaczyć ten wątek: Getting ssh-agent to work with git run from windows command shell

+0

Dzięki za cynk - Używam git-bash interfejs w systemie Windows i ssh-copy-id nie są rozpoznawane jako polecenia. – mike

+0

Musisz więc skopiować wygenerowaną linię ręcznie z 'id_rsa.pub' i dołączyć ją do serwera w pliku' ~ user/.ssh/authorized_keys' –

+0

zobacz mój edit ...;) –

3

Jeśli masz już klucz publiczny w ~/.ssh (i już dodał, że kluczem do swojego konta github), można mieć jedynie, aby załadować ponownie wprowadzić agenta SSH.

Aby sprawdzić, czy agent SSH ma klucz, typ ssh-add -l Jeśli wynik jest:

The agent has no identities. 

Potem wystarczy załadować klucz do agenta SSH jak ten:

ssh-add ~/.ssh/github_rsa 

(github_rsa to nazwa na moim komputerze dla przechowywanego klucza SSH. Plik ten może, między innymi, być również nazwany: id_rsa)

Po tym musisz wpisać y nasze hasło do klucza (najprawdopodobniej twoje hasło do zalogowania się na github). Jeśli pojawi się komunikat jak poniżej:

Identity added: /Users/name/.ssh/github_rsa (/Users/cpotzinger/.ssh/github_rsa) 
2

robi $ ssh-add ten pracował dla mnie, aby rozwiązać następujące, jak również dla gitlab

jovimac-2:work joviano$ git clone [email protected]:bjetfweb.git 
Cloning into 'bjetfweb'... 
Access denied. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 
+0

Proste i łatwe. – workdreamer

Powiązane problemy