Làm thế nào để giải quyết lỗi Quyền bị từ chối (khóa công khai) khi sử dụng Git?


632

Tôi đang dùng Mac Snow Leopard và tôi mới cài đặt git.

tôi chỉ cố

git clone git@thechaw.com:cakebook.git

nhưng điều đó mang lại cho tôi lỗi này:

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Tôi đang thiếu gì?
Tôi cũng đã thử làm ssh-keygenkhông có mật khẩu nhưng vẫn bị lỗi tương tự.


8
Bạn đã thử tải lên khóa công khai mà bạn đã tạo qua ssh-keygen chưa?
Patrick Cornelissen

Vấn đề của tôi là tôi đã thử sao chép từ sudo- đây là một người dùng khác có khóa công khai khác.
Vitaly Zdanevich

cùng một lỗi. Trước đây tôi đã tạo một khóa công khai thông qua github, sau đó tạo một cặp khóa khác với ssh-keygentiện ích. Xóa khóa công khai cũ trong cài đặt cá nhân trên github và thêm khóa id_rsa.pub của tôi vào khóa SSH và GPG đã khắc phục các sự cố về quyền nhân bản.
Tanner Dolby

Câu trả lời:


775

Nếu người dùng chưa tạo cặp khóa công khai / riêng tư ssh được đặt trước đó

Thông tin này đang hoạt động trên theChaw nhưng có thể được áp dụng cho tất cả các kho git khác hỗ trợ xác thực pubkey SSH. (Xem ví dụ về gitolite , gitlab hoặc github.)

Trước tiên hãy bắt đầu bằng cách thiết lập cặp khóa công khai / riêng của bạn. Điều này có thể sử dụng DSA hoặc RSA, vì vậy về cơ bản, bất kỳ khóa nào bạn thiết lập sẽ hoạt động. Trên hầu hết các hệ thống, bạn có thể sử dụng ssh-keygen.

  • Đầu tiên bạn sẽ muốn cd vào thư mục .ssh của bạn. Mở terminal và chạy:

    cd ~/.ssh && ssh-keygen

  • Tiếp theo bạn cần sao chép nó vào clipboard của bạn.
    • Trên OS X chạy: cat id_rsa.pub | pbcopy
    • Trên Linux chạy: cat id_rsa.pub | xclip
    • Trên Windows (thông qua Cygwin / Git Bash) chạy: cat id_rsa.pub | clip
  • Thêm chìa khóa của bạn vào tài khoản của bạn thông qua trang web.
  • Cuối cùng thiết lập .gitconfig của bạn.
    • git config --global user.name "bob"
    • git config --global user.email bob@... (đừng quên khởi động lại dòng lệnh của bạn để đảm bảo cấu hình được tải lại)

Đó là bạn nên nhân bản và kiểm tra.

Thông tin chi tiết có thể được tìm thấy tại https://help.github.com/articles/generating-ssh-keys (cảm ơn @Lee Whitney) -

Nếu người dùng đã tạo một cặp khóa công khai / riêng tư ssh được đặt trước đó

  • kiểm tra khóa nào đã được cấp phép trên cài đặt tài khoản github hoặc gitlab của bạn
  • xác định khóa riêng tương ứng phải được liên kết từ máy tính cục bộ của bạn

eval $(ssh-agent -s)

  • xác định vị trí của các phím

ssh-add ~/.ssh/id_rsa


6
Đồng ý. Đây thực sự không phải là một git mà là một vấn đề đồng bộ hóa ssh. Tôi đã nhận được điều tương tự với Assembla và liên kết của bạn đã giúp tôi giải quyết nó. Cảm ơn !
Alexandre Bour trước

Câu trả lời này rất hữu ích nhưng điều này có vẻ đầy đủ hơn và cũng dễ dàng hơn nếu bạn đang tạo khóa từ đầu: help.github.com/articles/generating-ssh-keys
whitneyland

6
Tôi đã trải qua một vấn đề với keygen. Nó nhạy cảm với địa chỉ email trong một biến env toàn cầu. Trong trường hợp bạn đang gặp vấn đề này, bạn sẽ muốn chỉ định địa chỉ email cho tài khoản github của mình trong bước đầu tiên: ssh-keygen -t rsa -C "your_email@youremail.com"
melchoir55

30
Nếu vẫn không được, bạn sẽ cần ssh-add ~/.ssh/id_rsa.
Michael Litvin

1
Sao chép bằng xclipLinux chỉ hoạt động bằng cách thực hiện các thao tác sau xclip -sel clip < ~/.ssh/id_rsa.pubđược liệt kê ở đây: help.github.com/articles/generating-ssh-keys
Pat Migliaccio

217

Khắc phục sự cố mở rộng hơn và thậm chí sửa lỗi tự động có thể được thực hiện với:

ssh -vT git@github.com

Nguồn: https://help.github.com/articles/error- allow-denied-publickey /


1
Vấn đề của tôi phải làm với việc có một khóa khác cho máy chủ của tôi. Khi tôi đã sử dụng lệnh trên để xác định sự cố, tôi đã sửa lỗi Xác định trong tệp cấu hình của mình và nó đã hoạt động.
Jarie Bolander

1
Đã hiển thị github khóa nào đang cố sử dụng để xác thực. v hữu ích
cdosborn

9
Điều này không sửa chữa bất cứ điều gì. Tôi vẫn nhận được lỗi trong câu hỏi của OP.
IgorGanapolsky

5
Lệnh có mặt để giúp bạn khắc phục sự cố, đây không phải là công tắc sửa lỗi cho tôi.
stevek

2
Tôi không thể nói điều này giải quyết được bất cứ điều gì, nhưng đó cũng là một mệnh lệnh thú vị và cũng hoạt động với GitHub Enterprise.
Hack-R

164

Lỗi này có thể xảy ra khi bạn đang truy cập URL SSH (Đọc / Ghi) thay vì URL Chỉ đọc Git nhưng bạn không có quyền ghi vào repo đó.

Đôi khi bạn chỉ muốn sao chép repo của riêng mình, ví dụ triển khai đến máy chủ. Trong trường hợp này, bạn thực sự chỉ cần truy cập CHỈ ĐỌC. Nhưng vì đó là repo của riêng bạn , GitHub có thể hiển thị URL SSH nếu đó là tùy chọn của bạn. Trong tình huống này, nếu khóa công khai của máy chủ từ xa không có trong Khóa SSH GitHub của bạn, quyền truy cập của bạn sẽ bị từ chối, điều này sẽ xảy ra .

Một trường hợp tương đương là khi bạn thử nhân bản repo của người khác mà bạn không có quyền truy cập ghi bằng URL SSH.

Nói một cách dễ hiểu, nếu mục đích của bạn là chỉ sao chép một repo, hãy sử dụng URL HTTPS ( https://github.com/{user_name}/{project_name}.git) thay vì URL SSH ( git@github.com:{user_name}/{project_name}.git) để tránh xác thực khóa công khai (không cần thiết).


Cập nhật: GitHub hiện đang hiển thị HTTPS là giao thức mặc định và động thái này có thể làm giảm khả năng lạm dụng URL SSH.


Với https://github.comurl git, nó vẫn nói SSL certificate problem: self signed certificate in certificate chain. git -c http.sslVerify=false clone ...có vẻ như là một động thái nguy hiểm Chrome không đưa ra bất kỳ cảnh báo ssl nào. Suy nghĩ?
Jason Kleban

1
@ uosɐſ Xin lỗi nhưng tôi chưa bao giờ gặp phải vấn đề này. Có lẽ điều đầu tiên cần làm là thử cùng một lệnh từ một máy khác và xem vấn đề có còn tồn tại không.
kavinyao

1
Điều này đã làm điều đó cho tôi, quá. Cảm ơn. Để sao chép git repo của tôi vào tài khoản lưu trữ được chia sẻ của tôi (1and1), tôi đã phải sử dụng git clone https://github.com/MyUserName/MyRepo.git Chỉ cần nhấp vào liên kết văn bản bên dưới URL repo ở bên phải trang Github có thông báo " Bạn có thể sao chép bằng HTTPS, SSH hoặc Subversion . ". (Nhấp vào HTTPS để nhận liên kết thay vì SSH mặc định .)
Oliver Schafeld 29/07/2015

CẢM ƠN BẠN!!!!!!
Sharl Sherif

Câu trả lời tuyệt vời. Cuối cùng ai đó giải thích tại sao nó hoạt động như vậy.
Qback

104

Liên kết trợ giúp github đã giúp tôi giải quyết vấn đề này. Có vẻ như khóa ssh không được thêm vào tác nhân ssh. Đây là những gì tôi đã làm.

Lệnh 1:

Đảm bảo ssh-agent được kích hoạt. Lệnh khởi động tác nhân ssh trong nền:

eval "$(ssh-agent -s)"

Lệnh 2:

Thêm khóa SSH của bạn vào ssh-agent:

ssh-add ~/.ssh/id_rsa

7
Sau khi nâng cấp lên OSx El Capitan lên Sierra, nó hoạt động với tôi.
Louwki

7
Làm việc cho tôi sau khi nâng cấp lên macOS Sierra =)
Adriano Resende

Điều này làm việc cho tôi trên Raspberry Pi, trong đó ssh-add có cờ "-k" thay vì "-K", rõ ràng. Nhưng một khi tôi đã thêm khóa triển khai, tôi có thể sao chép thành công repo của mình bằng liên kết SSH.
Josh

34

Có báo cáo lỗi tương tự.

Đã sửa bằng cách sử dụng HTTP thay thế. Vì tôi không muốn đặt "khóa SSH" cho PC thử nghiệm.

Thay đổi URL thành HTTP khi sao chép:

git clone https://github.com/USERNAME/REPOSITORY.git

Vấn đề của tôi hơi khác một chút : Tôi đã đặt URL khi thêm repo cục bộ hiện có vào điều khiển từ xa bằng cách sử dụng:

git remote add origin ssh://github.com/USERNAME/REPOSITORY.git

Để khắc phục, hãy đặt lại URL thành HTTP:

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

BTW, bạn có thể kiểm tra URL của mình bằng lệnh:

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

Hy vọng điều này sẽ giúp một số người như tôi. : D



21

Lưu ý rằng (ít nhất là đối với một số dự án), bạn phải có tài khoản github với khóa ssh .

Nhìn vào các khóa được liệt kê trong tác nhân xác thực của bạn ( ssh-add -l )
(nếu bạn không thấy bất kỳ khóa nào, hãy thêm một trong các khóa hiện tại của bạn bằng ssh-add / path / to / your / key (ví dụ: ssh-add ~ /.ssh/id_rsa ))
(nếu bạn không có bất kỳ khóa nào, trước tiên hãy tạo một khóa. Xem: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/document/iNET/node31.html hoặc chỉ cần google ssh-keygen)

Để xác minh rằng bạn có một khóa được liên kết với tài khoản github của bạn :

Truy cập: https://github.com/sinstall/ssh

Bạn sẽ thấy ít nhất một khóa có khóa băm khớp với một trong các giá trị băm bạn đã thấy khi bạn gõ ssh-add -l chỉ một phút trước.

Nếu bạn không, hãy thêm một cái, sau đó thử lại.


Điều này làm việc cho tôi. Nó xảy ra với tôi vì khóa của tôi không được thêm vào tác nhân xác thực. Cảm ơn.
antonD

19

Tôi đã vật lộn với cùng một vấn đề đó là những gì tôi đã làm và tôi đã có thể nhân bản repo. Tôi đã làm theo các thủ tục cho iMac .

Bước đầu tiên: Kiểm tra xem chúng tôi đã có khóa SSH công khai chưa.

  1. Mở Terminal.
  2. Nhập ls -al ~/.sshđể xem có khóa SSH hiện tại không:

Kiểm tra danh sách thư mục để xem bạn đã có khóa SSH công khai chưa. Công khai là một trong những d_dsa.pub, id_ecdsa.pub, id_ed25519.pub, id_rsa.pub sau đây

Nếu bạn không tìm thấy thì hãy đến bước 2 nếu không hãy làm theo bước 3

Bước 2: Tạo khóa SSH công khai

  1. Mở Terminal.
  2. Nhập lệnh followong với bạn địa chỉ email hợp lệ mà bạn sử dụng cho github ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. Bạn sẽ thấy sau đây trong thiết bị đầu cuối Generating public/private rsa key pair. Khi nó nhắc "Enter a file in which to save the key,"nhấn Enter. Điều này chấp nhận vị trí tập tin mặc định. Khi nó nhắc vào Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]Chỉ cần nhấn enter một lần nữa. Tại dấu nhắc, nhập cụm mật khẩu an toàn.
  4. Enter passphrase (empty for no passphrase): [Type a passphrase]nhấn enter nếu bạn không muốn Enter same passphrase again: [Type passphrase again]nhấn enter lần nữa

Điều này sẽ tạo ra id_rsa.pub

Bước 3: Thêm khóa SSH của bạn vào ssh-agent

  1. Loại liên kẽ eval "$(ssh-agent -s)"
  2. Thêm khóa SSH của bạn vào ssh-agent. Nếu bạn đang sử dụng khóa SSH hiện tại thay vì tạo khóa SSH mới, bạn sẽ cần thay id_rsa trong lệnh bằng tên của tệp khóa riêng hiện tại của bạn. Nhập lệnh này$ ssh-add -K ~/.ssh/id_rsa

Bây giờ sao chép khóa SSH và cũng thêm nó vào tài khoản github của bạn

  1. Trong thiết bị đầu cuối, hãy nhập lệnh này với tên tệp ssh của bạn pbcopy < ~/.ssh/id_rsa.pubĐiều này sẽ sao chép tệp vào khay nhớ tạm của bạn Bây giờ hãy mở tài khoản github của bạn Đi đến Cài đặt> Khóa SSH và GPG> Khóa SSH mới Nhập tiêu đề và dán khóa từ khay nhớ tạm và lưu nó. Voila bạn đã hoàn thành.

2
Người dùng Windows sao chép qua: cat ~ / .ssh / id_rsa.pub | clip
Fabii

1
Cuối cùng sau khi đọc ở đây và ở đó trong một giờ, giải pháp từng bước .... hoạt động tuyệt vời. Hãy nhớ thêm mật khẩu github của bạn làm cụm mật khẩu trong các bước nếu không sẽ phải thêm thủ công mọi lúc
Afshin Ghazi

13

Tôi có một tình huống hơi khác, tôi đã đăng nhập vào một máy chủ từ xa và đang sử dụng git trên máy chủ, khi tôi chạy bất kỳ lệnh git nào tôi nhận được thông báo tương tự

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

Cách tôi sửa nó là bằng cách thay đổi tệp / etc / ssh_config trên máy Mac của tôi. từ

ForwardAgent no 

đến

ForwardAgent yes

Lỗi xảy ra trong khi cố gắng tìm nạp đá quý từ github từ VirtualBox VM. Đã cập nhật Vagrantfile của tôi để sử dụng config.ssh.forward_agent = true, khởi động lại VM và bây giờ nó hoạt động.
Chris Bloom

1
Có thể không phải là sự lựa chọn tốt nhất về mặt bảo mật theo điều này: heipei.github.io/2015/02/26/NH
Bố

13

Tôi đã gặp vấn đề tương tự vì tôi nghĩ rằng sự khác biệt giữa SSHHTTPS

https://github.com/USERNAME/REPOSITORY.git

ssh://github.com/USERNAME/REPOSITORY.git

Vì vậy, tôi đã thay đổi từ HTTPS sang SSH chỉ bằng cách thay đổi https://thành ssh://không có gì ở cuối url được thay đổi.

Nhưng sự thật là:

https://github.com/USERNAME/REPOSITORY.git

git@github.com:USERNAME/REPOSITORY.git

Có nghĩa là tôi đã thay đổi ssh://github.com/USERNAME/REPOSITORY.gitđể git@github.com:USERNAME/REPOSITORY.gitnó hoạt động.

Lỗi ngu ngốc nhưng hy vọng giúp được ai đó!


vâng, tôi đã thay đổi ssh://github.com/USERNAME/REPOSITORY.gitđể git@github.com:USERNAME/REPOSITORY.gitnó hoạt động.
William Hu

Chắc chắn rồi. Tôi chỉ nói rằng tôi không thấy điểm đề cập đến https;)
OneCricketeer

Tôi thấy bởi vì tôi chỉ sử dụng sshthay vì httpsvậy tôi chỉ thay đổi 'https: //' thành 'ssh: // `thì tôi đã gặp lỗi. Vì vậy, thay đổi 'ssh: // git /../ `thành' git @ .. /" :) Đã chỉnh sửa câu trả lời của tôi.
William Hu

Nó làm việc cho tôi. Cảm ơn rât nhiều! Tôi đã thử https và sau đó ssh nhưng nó vẫn từ chối quyền truy cập của tôi cho đến khi thực hiện theo cách của bạn với "git clone git@github.com: /myusername/myproject.git".
Thạch Văn

6

Trên Windows, đảm bảo tất cả các ứng dụng của bạn đồng ý trên HOME. Msys sẽ ngạc nhiên KHÔNG làm điều đó cho bạn. Tôi đã phải đặt một biến môi trường vì ssh và git dường như không thể đồng ý về vị trí thư mục .ssh của tôi.


6

Bạn đang ở trong một môi trường công ty ? Có thể là các biến hệ thống của bạn gần đây đã thay đổi? Mỗi này câu trả lời SO, phím ssh sống ở %HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub. Vì vậy, nếu %HOMEDRIVE%gần đây đã thay đổi, git không biết tìm khóa của bạn ở đâu và do đó, tất cả các công cụ xác thực.

Hãy thử chạy ssh -vT git@github.com. Hãy lưu ý nơi identity fileđược đặt. Đối với tôi, điều đó không chỉ đến bình thường của tôi \Users\MyLoginmà là ổ đĩa mạng, vì sự thay đổi các biến môi trường được đẩy ở cấp độ mạng.

Giải pháp? Vì %HOMEDRIVE%tệp mới của tôi có cùng quyền với các tệp cục bộ của tôi, tôi chỉ cần di chuyển thư mục .ssh của mình đến đó và gọi nó là một ngày.


công việc này cho tôi hôm qua khóa ssh của tôi hoạt động nhưng hôm nay một số cài đặt hệ thống của tôi bị thay đổi. Tôi chỉ cần thêm khóa shh một lần nữa và nó đang hoạt động.
Hitesh Agarwal

6

Các bạn, đây là cách nó làm việc với tôi:

  1. Mở thiết bị đầu cuối và đi đến người dùng [Xem hình ảnh đính kèm]
  2. Mở thư mục .ssh và đảm bảo rằng nó không có bất kỳ tệp nào như id_rsa hoặc id_rsa.pub nếu không đôi khi nó sẽ không ghi lại các tệp đúng cách
  3. git --version [Kiểm tra cài đặt và phiên bản git]
  4. git config --global user.email "id email của bạn"
  5. git config --global user.name "tên của bạn"
  6. git config --list [đảm bảo bạn đã đặt tên và email]
  7. cd ~ / .ssh
  8. ssh-keygen, nó nhắc lưu tập tin, cho phép nó
  9. cat ~ / .ssh / id_rsa.pub [Truy cập khóa công khai của bạn và sao chép khóa vào cài đặt gerrit]

Lưu ý : Bạn không nên sử dụng lệnh sudo với Git. Nếu bạn có một lý do rất chính đáng, bạn phải sử dụng sudo, thì hãy đảm bảo rằng bạn đang sử dụng nó với mọi lệnh (có lẽ tốt hơn là sử dụng su để lấy shell làm gốc tại thời điểm đó). Nếu bạn tạo các khóa SSH mà không có sudo và sau đó thử sử dụng một lệnh như sudo git đẩy, bạn sẽ không sử dụng cùng các khóa mà bạn đã tạo

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


5

Các hướng dẫn GIT cơ bản không tạo tham chiếu đến nội dung khóa SSH. Theo dõi một số liên kết ở trên, tôi tìm thấy một trang trợ giúp git giải thích, từng bước, chính xác cách thực hiện việc này cho các hệ điều hành khác nhau (liên kết sẽ phát hiện HĐH của bạn và chuyển hướng, theo đó):

http://help.github.com/set-up-git-redirect/

Nó đi qua tất cả mọi thứ cần thiết cho GITHub và cũng đưa ra những giải thích chi tiết như "tại sao thêm cụm mật khẩu khi tạo khóa RSA". Tôi hình dung tôi sẽ đăng nó, trong trường hợp nó giúp người khác ...


5

Một trong những cách dễ nhất

đi đến nhà ga-

  git push <Git Remote path> --all


3

Nếu bạn có nhiều hơn một khóa, bạn có thể cần phải làm ssh-add private-keyfile


Cảm ơn rất nhiều! Đây thực sự là vấn đề của tôi.
GoGreen

[root @ li566-238 hanjiyun] # ssh-add private-keyfile private-keyfile: Không có tệp hoặc thư mục như vậy
JY Han

3

Tôi gặp lỗi này vì tôi cần cấp cho thư mục làm việc hiện tại 700 quyền:

chmod -R 700 /home/ec2-user/

3

Tôi đã phải sao chép các khóa ssh của mình vào thư mục gốc. Công cụ điện toán đám mây của Google chạy Ubuntu 18.04

sudo cp ~/.ssh/* /root/.ssh/

2

Tôi vừa gặp vấn đề này trong khi thiết lập dự án hiện tại của tôi và không có giải pháp nào ở trên hoạt động. Vì vậy, tôi đã cố gắng tìm kiếm những gì thực sự xảy ra trong danh sách gỡ lỗi bằng lệnh ssh -vT git@github.com. Tôi nhận thấy rằng tên tệp khóa riêng của tôi không có trong danh sách. vì vậy đổi tên tên khóa riêng thành 'id_rsa' thực hiện công việc. hy vọng điều này có thể giúp đỡ.


Không hữu ích trong trường hợp khi bạn đang sử dụng phím "id_rsa" cho bất cứ điều gì khác ....
Random_user_name

2

Nó khá thẳng về phía trước. Nhập lệnh dưới đây

ssh-keygen -t rsa -b 4096 -C "youremailid@yourdomain.com"

Tạo khóa SSH. Mở tệp và sao chép nội dung. Chuyển đến trang cài đặt GitHub và nhấp vào khóa SSH. Nhấp vào Thêm khóa SSH mới và dán nội dung vào đây. Đó là nó :) Bạn không nên nhìn thấy vấn đề một lần nữa.


1

Tôi đã nhận được một lỗi tương tự Giấy phép bị từ chối (khóa công khai) khi cố gắng chạy một tệp thực hiện.

Thay thế cho các bước SSH ở trên, bạn có thể Cài đặt ứng dụng GitHub cho Mac gốc.

Nhấp vào Tải xuống GitHub cho Mac từ - https://help.github.com/articles/set-up-git#pl platform-mag

Khi bạn hoàn tất thiết lập với tài khoản trung tâm git của mình (Tôi cũng đã cài đặt các công cụ dòng lệnh git hub nhưng không chắc bước này có bắt buộc hay không) thì tôi đã nhận được email -

[GitHub] Một khóa công khai mới đã được thêm vào tài khoản của bạn

và lỗi của tôi đã được sửa.


1

Tôi đã nhận được cùng một lỗi. Vấn đề của tôi là trộn trong sudo.

Tôi không thể tạo thư mục mà tôi đã nhân bản thành tự động mà không cần tiền tố lệnh git clone với sudo. Tuy nhiên, khi tôi làm điều đó, các phím ssh của tôi không được tham chiếu chính xác.

Để sửa nó, tôi đặt quyền thông qua chmod trên thư mục cha mà tôi muốn chứa bản sao của mình để tôi có thể viết thư cho nó. Sau đó, tôi chạy git clone KHÔNG CÓ tiền tố sudo. Sau đó nó hoạt động! Tôi đã thay đổi các quyền trở lại sau đó. Làm xong.


1

Tôi đã gặp lỗi này vì tôi đã tạo các khóa ssh với email sai. Tôi đã có thể kết nối bằng ssh, nhưng không sử dụng git. Giải pháp là tạo lại các khóa bằng địa chỉ email chính của tài khoản github của tôi.


1

Nó làm việc cho tôi.

Khóa công khai của bạn được lưu vào tệp id_rsa.pub; và là khóa bạn tải lên tài khoản của mình. Bạn có thể lưu khóa này vào bảng tạm bằng cách chạy này:

pbcopy <~ / .ssh / id_rsa.pub

  • sao chép khóa SSH vào bảng tạm, quay lại cổng thông tin web.
  • Trong trường SSH Key, dán khóa SSH của bạn.
  • Trong trường Tên, cung cấp tên cho khóa.
  • tiết kiệm .

1

Nó làm việc cho tôi

ssh -i [your id_rsa path] -T github@github.com

Bạn muốn giải thích lý do tại sao câu trả lời của bạn sẽ giải quyết vấn đề của anh ấy, cảm ơn.
Muhammed Refaat

1

Giải pháp đơn giản nhất cho vấn đề này, khi bạn đang cố gắng đẩy đến một kho lưu trữ với tên người dùng khác là:

 git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

1

Lỗi lạ này, trong trường hợp của tôi là một triệu chứng của gnome-keyring-daemonviệc đặt tên khóa không chính xác mà nó yêu cầu mật khẩu.

Tôi làm theo các bước được nêu ở đây, và nhập mật khẩu qua thiết bị đầu cuối. Lỗi, còn gọi là giao diện GUI gây nhiễu, đã được khắc phục. Xem: https://askubfox.com/questions/3045/how-to-disable-gnome-keyring


1

Trong trường hợp của tôi, tôi đã cài đặt lại Ubuntu và tên người dùng được thay đổi so với trước đây. Trong trường hợp này, khóa ssh được tạo cũng khác với khóa trước.

Vấn đề được giải quyết bằng cách chỉ sao chép khóa công khai ssh hiện tại, trong kho lưu trữ. Chìa khóa sẽ có sẵn trong người dùng của bạn/home/.ssh/id_rsa.pub


1

Trong MAC của tôi, tôi đã giải quyết điều này với:

cp ~/.ssh/github_rsa ~/.ssh/id_rsa

Vì một số lý do, git của tôi dừng lại để tìm khóa riêng trong github_rsatệp. Điều này đã xảy ra trong một repo cụ thể. Tôi có nghĩa là trong các kho khác git tiếp tục hoạt động bình thường.

Tôi nghĩ đó là một lỗi.

Tôi có thể tìm thấy hành vi này đang chạy ssh -vT git@github.com

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.