2012-03-05 34 views
17

Tôi dường như đã mất quyền truy cập vào tài khoản github sau khi đẩy nó từ một kho lưu trữ cục bộ khác. Tôi bây giờ nhận được lỗi sau:Quyền github lỗi (khóa ssh không được công nhận)

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

sau đó tôi mất các bước sau để tái tạo một phím:

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

Tuy nhiên, điều này đã không thành công. Khi tôi thử mã sau được đề xuất, tôi nhận được lỗi sau:

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

Bất kỳ suy nghĩ nào?

Trả lời

50

tôi giải quyết vấn đề này sau bước- này từng bước hướng dẫn:

bước 1: Kiểm tra cho các phím 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. 

Bước 2: Sao lưu và loại bỏ những khóa SSH hiện

$ 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 

Bước 3: Tạo một SSH mới chính

$ 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] 

Bước 4: Thêm chìa khóa SSH của bạn để 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 

Sau đó, đi đến hithub, và làm:

  1. Đến Cài đặt tài khoản
  2. Bấm "SSH Keys" trong thanh bên trái
  3. Bấm "Add chìa khóa SSH"
  4. Dán chìa khóa của bạn vào "Key" lĩnh vực
  5. Bấm "Add chìa khóa"
  6. Xác nhận hành động bằng cách nhập mật khẩu của bạn GitHub

Bước 5: Kiểm tra tất cả mọi thứ ra

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

Nếu ok, bạn sẽ thấy

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

Nếu không (nó đã xảy ra với tôi), bạn sẽ thấy

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

Để giải quyết việc này

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

Đối với thông tin ban đầu

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

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

+0

ssh-add không điều. Cảm ơn một lần nữa ... –

+0

xin lỗi, làm thế nào để bạn nhập vào đường dẫn? đường dẫn của tôi là C: \ Documents and Settings \ admin \ .ssh thư mục. định dạng nhập đường dẫn là gì? – Thinkerer

+0

trên mac của bạn thay vì 'sudo apt-get install xclip' bạn có thể phải chạy 'brew install homebrew/emacs/xclip-mode' thay vì –

1

Bạn phải xuất khẩu quan trọng của bạn trên máy chủ bằng lệnh

ssh-copy-id [email protected] 

ssh-agent nên chạy trước khi bạn ssh-add. Bạn có thể đặt dòng này trong /etc/rc.local nếu bạn dưới Linux:

eval $(ssh-agent) 

Sửa: bây giờ tôi biết bạn sử dụng cửa sổ, nên xem chủ đề này: Getting ssh-agent to work with git run from windows command shell

+0

Thanks for the tip - Tôi đang sử dụng git-bash giao diện trên windows và ssh-copy-id không được nhận dạng như một lệnh. – mike

+0

Vì vậy, bạn phải sao chép dòng được tạo theo cách thủ công từ 'id_rsa.pub' và nối nó vào máy chủ trong tệp' ~ user/.ssh/authorized_keys' –

+0

xem chỉnh sửa của tôi ...;) –

3

Nếu bạn đã có một khóa công khai trong ~/.ssh (và đã nói thêm rằng chìa khóa để tài khoản github của bạn), bạn chỉ có thể có để tải của bạn nhập lại vào đại lý SSH.

Để kiểm tra nếu các đại lý SSH có chìa khóa, loại ssh-add -l Nếu kết quả là:

The agent has no identities. 

Sau đó chỉ cần tải chìa khóa của bạn vào đại lý SSH như thế này:

ssh-add ~/.ssh/github_rsa 

(github_rsa là tên trên máy tính của tôi cho khóa SSH được lưu trữ. Tệp này có thể, trong số những tên khác, cũng được đặt tên: id_rsa)

Sau đó bạn phải nhập y cụm từ mật khẩu của chúng tôi cho khóa (đây có thể là mật khẩu của bạn để đăng nhập vào github). Nếu bạn nhận được một thông điệp như thế này:

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

Làm một $ ssh-add này đã làm việc cho tôi để giải quyết sau cũng cho 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

Đơn giản và dễ dàng. – workdreamer

Các vấn đề liên quan