2011-03-18 56 views
19

Tôi gặp vấn đề lạ với git rùa vào lúc này, điều mà tôi không thể hiểu được. Khi cố gắng cam kết kho của tôi trên github tôi nhận được lỗiTortoiseGit sử dụng khóa SSH không chính xác

ERROR: Permission to martindevans/Hermes.git denied to key2

khóa2 là chìa khóa tôi sử dụng để truy cập vào một kho github khác nhau, tuy nhiên url từ xa không được thiết lập để sử dụng khóa2, như bạn có thể thấy ở đây đó là thiết lập để sử dụng private.ppk

enter image description here

tôi có làm một cái gì đó rõ ràng là sai, hoặc là rùa git bị hỏng?

Nb. Đáp lại các bình luận. Sử dụng kết quả git bình thường trong:

C:\Users\Martin\Documents\Visual Studio 2010\Projects\Hermes>git push 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 
+0

Ứng dụng có hoạt động chính xác nếu bạn sử dụng Git thông thường không có Rùa không? –

+0

Không, cùng một lỗi – Martin

+1

Câu hỏi hay! Và bây giờ bạn có câu trả lời với nhiều phiếu bầu - bạn có cân nhắc đánh dấu nó như vậy không? –

Trả lời

30

Có các định dạng khóa riêng tư khác nhau. Keypair của tôi đã được tạo ra với puttygen, nhưng Tortoise của tôi đã được cấu hình để sử dụng ssh.exe (mẫu msysgit) là ssh-client. Vì vậy, tôi thay đổi nó để plink (từ Rùa) và nó đã làm việc.

  • ssh-key.exe => ssh.exe (C: \ msysgit \ msysgit \ bin)
  • puttygen.exe => TortoisePlink.exe (C: \ Program Files \ TortoiseGit \ bin)

Lưu ý bổ sung: Sử dụng URL chính xác! Github cung cấp cho bạn ba URL https, git và ssh.


Edit:

Tôi thích các thiết lập đây:

Settings - TortoiseGit >> Network >> SSH-Client 
C:\Program Files\TortoiseGit\bin\TortoisePLink.exe 

tôi đã tạo ra cặp khóa với:

C:\Program Files\TortoiseGit\bin\puttygen.exe 
+0

Ngoài ra, hãy kiểm tra tùy chọn "Tự động nạp khóa" trong một số hộp thoại Rùa. – JarodMS

+0

Bạn đã thay đổi chính xác nó ở đâu? – acme

+0

Nếu bạn muốn sử dụng khóa OpenSSH thì các thay đổi là gì? Bạn sử dụng sys msysgit và bạn đặt khóa ssh ở đâu? Trong Settings-> Remote nó chỉ nói phím putty! –

1

tạo phím trong git bash:

ssh-keygen -t rsa 

Để lại tất cả mọi thứ trống và không đặt mật khẩu. Lấy nội dung của ~/.ssh/id_rsa.pub và dán nó vào không gian khóa công khai do github cung cấp.

Bây giờ, hãy thử nghiệm điều này bằng cách kết nối với github qua ssh. Nếu nó hoạt động, bạn sẽ có thể sử dụng git.

hy vọng điều này sẽ hữu ích.

+0

Tạo một khóa mới có thể giải quyết vấn đề tạm thời, nhưng tôi nghi ngờ nó sẽ giải quyết mọi thứ trong thời gian dài. Điều này tất cả đã được làm việc cho đến ngày hôm nay, nơi máy tính của tôi dường như quyết định sử dụng khóa sai để kết nối với github. – Martin

+0

Phiên bản Git của tôi thậm chí không thể tải các khóa được tạo theo cách này. Các khóa tôi tạo ra với putty được tải, những cái được tạo bằng gitbash cung cấp lỗi: "Không thể tải keyfile" khi cố gắng đẩy đến một repo. – atripes

10

Hah! ProcMon để giải cứu. Đây là một lỗi trong tortoisegit/tortoiseplink. Nó sẽ cung cấp ưu tiên cho tập hợp khóa cho điều khiển từ xa đó qua cuộc thi, nhưng thay vào đó nó cung cấp tùy chọn cho khóa được lưu trữ trong sổ đăng ký bằng putty cho máy chủ cụ thể đó. Hai bản sửa lỗi.

2 có thể sửa chữa ở đây

TortoisePlink của bạn được tích hợp với putty, và nó đọc private key mà bạn đã lưu trong putty "phiên" gắn liền với máy chủ đó. Ít nhất đó là những gì nó dành cho tôi. Mặc dù vậy, tôi không phải là github, vì vậy tôi không biết khả năng tồn tại của giải pháp này cho mọi người.

Tôi khuyên bạn nên xóa tập hợp khóa theo cách thủ công trong cấu hình phiên putty và sử dụng pagaent cho các phiên putty của bạn, vì đó là những gì git rùa làm. Điều này cũng làm cho tortoisegit sử dụng bộ khóa cho điều khiển từ xa.

  1. Vì vậy, bạn có thể mở putty, tải bất cứ phiên bạn đã liên kết với máy chủ, đi đến Connection/SSH/Auth và sửa đổi/xóa các "Tệp khoá cá nhân để xác thực" giá trị. MOdification có thể sửa chữa repo này nhưng sau đó vít lên repo khác nếu bạn đang sử dụng các khóa khác nhau cho cùng một máy chủ.

  2. Bạn có thể tự sửa đổi/xóa mục đăng ký. nó HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\$SERVERNAME$\PublicKeyFile

+1

báo cáo lỗi rùa: http://code.google.com/p/tortoisegit/issues/detail?id=1347 – scaryman

+1

Ngoài ra còn có 'Default% 20Settings' làm khóa phiên' $ SERVERNAME' mà tôi đã bỏ lỡ cũng chứa một PublicKeyFile – icc97

1

tôi đã thiết lập TortoiseGit tôi để truy cập Bitbucket (Win10) cùng một vấn đề. Để giải quyết nó, tôi phải xóa các khóa máy chủ đã lưu cũ trong sổ đăng ký tại HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys (không phải phím (Mặc định), tho).

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