Lỗi "Xác thực không thành công" với EGit và GitHub


98

Tôi đã cài đặt plugin EGit tại Eclipse Helios và đang cố gắng sử dụng nó với tài khoản GitHub của mình, nhưng khi tôi cố gắng định cấu hình nó, tôi gặp lỗi "Auth Failed".

Tôi đã tìm kiếm nó nhưng không may mắn ... có vẻ như có vấn đề với cụm mật khẩu của tôi nhưng AFAIK EGit đang tìm đúng nơi ( /home/user/.ssh/id_rsa) và tôi không gặp vấn đề gì khi kết nối bằng sshhoặc gitmáy khách bảng điều khiển.

Một số blog nói rằng đó là vấn đề với URI và trình phân tích cú pháp của Egit nhưng tôi vẫn chưa tìm ra giải pháp.


Câu trả lời:


140

Câu trả lời của tôi có thể đã lỗi thời nhưng hy vọng nó có thể hữu ích cho ai đó.

  1. Trong Eclipse của bạn, đi tới Window> Preferences> General> Network Connections> SSH2 (hoặc chỉ cần nhập "SSH2" trong hộp lọc cửa sổ tùy chọn).

  2. Trong tab "Quản lý khóa", nhấn nút "Tạo khóa RSA ..." . Theo tùy chọn, bạn có thể thêm nhận xét (thường là địa chỉ e-mail) và cụm mật khẩu vào khóa của mình. Cụm mật khẩu sẽ được sử dụng trong quá trình xác thực trên GitHub.

  3. Sao chép khóa công khai đã tạo của bạn (trong hộp ngay bên dưới nút "Tạo khóa RSA ...") và thêm khóa đó vào tài khoản GitHub của bạn.
  4. Nhấn nút "Lưu khóa cá nhân ..." để lưu khóa RSA riêng tư của bạn vào tệp. Theo mặc định, các khóa được lưu trữ trong thư mục chính SSH2 (xem tab "Chung").

Đó là nó! Bây giờ bạn sẽ có thể đẩy mã của mình lên repo GitHub.


1
Khóa riêng tư của tôi không có tên chuẩn (id_rsa), vì vậy nó không được nhận dạng như vậy. Tôi đã thêm nó theo cách thủ công, trong cửa sổ tùy chọn do bạn chỉ và nó hoạt động tốt.
muriloq

18
Tôi nhận thấy rằng sau khi thiết lập khóa SSH như bạn mô tả, tôi không nên thay đổi tên người dùng / mật khẩu trong hộp xác thực (tôi đang đặt thông tin đăng nhập GitHub của mình). Mặc định trong hộp này là tên người dùng: git và mật khẩu trống.
harschware

1
Điều này đã làm việc với tôi với kho lưu trữ git BitBucket, tôi đã phải khởi động lại Eclipse.
artlung

8
để trống tên người dùng là git và mật khẩu cuối cùng đã làm việc cho tôi.
Mike R

4
Đây là quy trình để thêm khóa RSA đã tạo vào tài khoản github của bạn 1) đăng nhập vào tài khoản github của bạn 2) cài đặt goto 3) ở bên trái, bạn sẽ tìm thấy các khóa SSH, nhấp vào đó 4) sau đó nhấp vào thêm khóa SSH (bây giờ hãy dán khóa SSH mà bạn đã tạo)
rajeev

27

Tôi đã gặp chính xác vấn đề tương tự nhưng tôi đã tìm thấy cách chữa từ báo cáo lỗi Eclipse!

Một biến môi trường có tên GIT_SSH phải được đặt với đường dẫn đến tệp thực thi ssh [1].

Ví dụ trên Ubuntu Linux (10.10 64bit):

> export GIT_SSH=/usr/bin/ssh
> eclipse

Sau đó, đẩy đến kho lưu trữ GitHub hoạt động như bình thường. Tôi đã thử nghiệm điều này với Eclipse Galileo và Indigo.

Vấn đề là thực sự khó chịu và giải pháp là xa tốt đẹp. Hiện tại, làm cho giải pháp vĩnh viễn đối với, ít nhất là người dùng Ubuntu, người ta phải đặt biến env vĩnh viễn. Nó có thể được thực hiện bằng cách thêm lệnh xuất vào ~ / .profile hoặc ~ / .bashrc [2]. Ví dụ:

> cd ~
> echo "export GIT_SSH=/usr/bin/ssh" >> .profile

Và sau đó khởi động lại Eclipse để có hiệu lực.

Nguồn:


Tôi đã gặp vấn đề này cả tuần - Eclipse dưới osx kết nối với GitHub hoặc Asssembla. Bản sửa lỗi của bạn làm việc cho tôi. Cảm ơn.
ianmayo

Trên Windows, openssh không hoạt động với tôi. Tôi đã phải sử dụng plink. Hãy xem câu trả lời của tôi.
Piotr Dobrogost

Và nó đang tiến gần đến bản sửa lỗi được phát hành. Ở cuối báo cáo lỗi, một người nào đó đã chỉ cách tải xuống thủ công tệp jar jsch mới nhất và cài đặt thủ công để tệp hoạt động theo cách đó. Tôi chỉ sử dụng giải pháp env var này và đợi tệp jar jsch đó vào bản phát hành eclipse thực sự.
crowmagnumb

Đã giải quyết vấn đề của tôi. Cảm ơn.
Pedram 20/12/12

CHÚA ƠI. Những vấn đề như thế này khiến tôi tự hỏi tại sao Android lại sử dụng Eclipse ngay từ đầu. Cảm ơn rất nhiều cho mẹo của bạn. Điều đó đã giải quyết được vấn đề của tôi và EGit / Eclipse hoàn toàn vô ích với "Auth Fail"
Calyth

16

Tôi đã giải quyết nó bằng cách chọn httplàm giao thức và cung cấp tên người dùng và mật khẩu GitHub của mình.


Đúng! Trái ngược với mọi thứ khác mà tôi đã đọc, nhưng điều đó đã hiệu quả. (Eclipse Indigo)
Owen B

http hoặc https là cách đơn giản hơn so với ssh
Junchen Liu

Có, nhưng có những trường hợp bạn cần sử dụng ssh. Chẳng hạn như cần xác thực hai yếu tố trong BitBucket khi làm việc với kho lưu trữ. Bạn chỉ có thể làm việc trên ssh khi bạn cần xác thực hai yếu tố.
Akshay Mahajan

10

Sau khi dành hàng giờ để tìm giải pháp cho vấn đề này, cuối cùng tôi đã thành công bằng cách thực hiện các thay đổi được đề cập trên Diễn đàn Eclipse .

Các bước:

Điều kiện tiên quyết: mysysgit được cài đặt với cấu hình mặc định.

1. Tạo tệp C: /Users/Username/.ssh/config (Thay thế "Tên người dùng" bằng tên người dùng Windows 7 của bạn. (Ví dụ: C: /Users/John/.ssh/config)) và đặt nó vào đó:

Host github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

2. Thử thiết lập kho lưu trữ từ xa ngay bây giờ trong Eclipse.

Chúc mừng. Nó sẽ hoạt động hoàn hảo.


8

Bạn cần cài đặt msysgit, sau khi cài đặt bạn cần mở Git Bash và nhập vào đó các lệnh sau:

$ git config --global user.name "Gennadiy Zlobin" (your name)
$ git config --global user.email gennad.zlobin@gmail.com (your email)
$ ssh-keygen -C "gennad.zlobin@gmail.com" -t rsa (your email)

Bây giờ các khóa được tạo của bạn đã ở trong C:\Users\username\.ssh(trong Windows 7).
Tiếp theo, bạn tải nội dung của khóa công khai vào dự án của mình trên Github
Trong Eclipse, mở Window->Preferences->General->Network->SSH2và đặt của bạn ~/.sshlàm Trang chủ SSH

Sau đó, truy cập Key Management tabNạp khóa hiện có - đặt khóa cá nhân của bạn tại đây ~/.ssh.

Sau đó, bạn có thể đẩy dự án của mình lên Github (nhưng tôi đặt giao thức ssh, không phải git + ssh).


Cảm ơn rất nhiều, nhưng thực sự tôi đang chạy nó dưới Arch Linux
tehsis

5

Tôi đã giải quyết vấn đề tương tự với việc thêm khóa của mình vào ssh;

ssh-add ~/.ssh/id_rsa 

sau đó nhập cụm mật khẩu và cần khởi động lại.


4

Đối với người dùng * nix đang sử dụng SSH:

Đảm bảo tên người dùng cho tài khoản của bạn trên máy cục bộ của bạn không khác với tên người dùng cho tài khoản trên máy chủ. Rõ ràng, eGit dường như không thể xử lý điều này. Ví dụ: nếu tên người dùng của bạn trên máy cục bộ của bạn là 'john' và tài khoản bạn đang sử dụng trên máy chủ có tên là 'git', ví dụ: nó chỉ không thể kết nối (đối với tôi). Công việc duy nhất mà tôi đã tìm thấy là đảm bảo rằng bạn có tên người dùng giống hệt nhau trong cả máy cục bộ và máy chủ.


1
Bất kỳ ý tưởng là trường hợp này vẫn còn? Tôi đã đập đầu vào tường cho tối nay. Khóa riêng tư của tôi được bảo vệ bằng cụm mật khẩu mà Eclipse / eGit không bao giờ yêu cầu. Khi tôi cố gắng đẩy từ xa, Eclipse chỉ spews ra lỗi "org.eclipse.jgit.transport.CredentialItem $ StringType Passphrase cho .ssh id_rsa"
Vilsepi


2

Fourpenneth: các khóa SSH của tôi được thiết lập trong Cygwin, tại C: \ cygwin \ home \ <user> .ssh, vì vậy tôi đã trỏ SSH vào thư mục này thay vì mặc định (Win7) C: \ Users \ <user> \ ssh , theo hướng dẫn này: http://wiki.eclipse.org/EGit/User_Guide/Remote#Eclipse_SSH_Configuration

và sử dụng giao thức ssh, và nó hoạt động tốt. Tuy nhiên, việc cố gắng sử dụng giao thức git vẫn cho kết quả là "Người dùng không được hỗ trợ trên giao thức git".


2

Đối với những người, như tôi, đã thiết lập ssh-key cho bạn nhưng vẫn gặp lỗi:

Đảm bảo rằng bạn đã thiết lập điều khiển từ xa . Nó đã hoạt động với tôi khi tôi nhận được cả hai lỗi Không thể tải từ kho lưu trữ từ xa -problems ("... Cụm từ mật khẩu cho ..." và "Lỗi xác thực" trong hộp thoại "Đẩy ...").

Miễn là bạn đã:

  1. Thiết lập khóa SSH của bạn bằng Github (Window> Preferences> General> Network Connections> SSH2)

  2. Thiết lập kho lưu trữ cục bộ của bạn (bạn có thể làm theo hướng dẫn này để làm điều đó)

  3. Đã tạo kho lưu trữ Github ( hướng dẫn tương tự )

... đây là cách bạn làm điều đó:

  • Chuyển đến chế độ xem Kho lưu trữ Git (Window> Hiển thị chế độ xem> Khác> Kho lưu trữ Git)
  • Mở rộng Kho lưu trữ của bạn và nhấp chuột phải vào Điều khiển từ xa -> "Tạo từ xa"
  • "Tên từ xa": origin, "Configure push": đã chọn -> nhấp vào "OK"
  • Nhấp vào "Change ..." nút
  • Dán URI git của bạn và chọn ssh giao thức -> nhấp vào "Hoàn tất"
  • Bây giờ, hãy nhấp vào "Lưu và đẩy" và BÂY GIỜ bạn sẽ nhận được lời nhắc mật khẩu -> nhập cụm mật khẩu khóa công khai tại đây (với điều kiện bạn đã DID (và bạn nên) thiết lập cụm mật khẩu cho khóa công khai của mình) -> nhấp vào "OK"
  • Bây giờ bạn sẽ nhận được một cửa sổ xác nhận thông báo "Đã đẩy đến Kho lưu trữ của bạn - origin" -> nhấp vào "OK"
  • Đẩy lên ngược dòng , nhưng lần này hãy sử dụng "Kho lưu trữ từ xa đã định cấu hình" làm kho lưu trữ Git đích của bạn
  • Đi lấy cho mình một tách cà phê kiếm được tốt!

1

Tôi đã cập nhật plugin với các bản dựng hàng đêm: http://www.eclipse.org/egit/download/

Với một bản cập nhật, nó đã làm việc cho tôi. (Eclipse Helios, Mac OS X)


Nó vẫn không hoạt động đối với tôi :( nó đã được nâng cấp hai lần kể từ khi tôi đăng bài này. Có thể là một lỗi trong GNU / Linux
tehsis

1

Bạn đã thử sử dụng giao thức ssh trên git + ssh chưa? Tôi gặp vấn đề tương tự và cách đó đã giải quyết được, mặc dù tài liệu chính thức yêu cầu sử dụng git + ssh


1

Trên Windows, cài đặt GIT_SSHthành openssh đi kèm với msys git không hoạt động (Eclipse bị treo trong khi cam kết). Đặt nó thành TortoisePlink đã giải quyết được vấn đề (tôi đoán plink gốc cũng sẽ hoạt động). Phần thưởng được bổ sung là bây giờ Eclipse sử dụng các khóa được lưu trữ trong cuộc thi.


1

Tôi đã giải quyết bằng cách chọn https làm giao thức, sau đó thêm tên người dùng và mật khẩu github của mình


1

Trong chế độ xem GIT, nơi bạn có kho lưu trữ của mình, bạn sẽ thấy một cấu trúc như:

  • chi nhánh
  • thẻ
  • người giới thiệu
  • điều khiển từ xa
  • Vân vân...

Nhấp vào điều khiển từ xa, nhấp chuột phải vào url của kho lưu trữ ở đó và chọn 'Thay đổi thông tin đăng nhập'.



0

Tôi đã gặp vấn đề tương tự mà có vẻ như do vấn đề cấu hình. Ứng dụng github mac osx đã tạo một khóa cá nhân ssh có tên github_rsa

Trong Eclipse của bạn, hãy đi tới Window > Preferences > Network Connections > SSH2

Trong tab chung, bạn sẽ thấy trang chủ SSH2 /Users/<you username>/.sshcó thể bạn sẽ thấy id_dsa, id_rsa được định nghĩa là khóa riêng.

Nhấp vào 'Thêm khóa riêng tư' và chọn github_rsa nằm /Users/<you username>/.ssh


0

NẾU BẠN CÓ TẬP TIN PEM : Trong Eclipse, đi tới Window> Preferences> Network Connections> SSH2 , sau đó thêm đường dẫn đến tệp PEM của bạn thành "Private key" và điều đó sẽ giải quyết được vấn đề.


0

Tôi muốn công khai một khi tôi cũng sửa mã google và gặp lỗi tương tự. Đã bắt đầu với Video này , nhưng tại Lưu và xuất bản đã gặp lỗi. Tôi đã thấy có một số câu hỏi liên quan đến điều này. Một số là người dùng Windows, đó là những người may mắn nhất, vì thường không có vấn đề gì với quyền và một số là người dùng Linux.

Tôi có một máy mac để sử dụng phát triển di động và rất thường xuyên gặp sự cố này. Nguồn gốc của vấn đề này là các giải pháp "độc lập với nền tảng", không đủ quan tâm cho mac và chúng không có quyền truy cập vào chuỗi khóa, nơi được lưu trữ các chứng chỉ, tệp .pem, v.v.

Tất cả những gì tôi muốn là không thực hiện bất kỳ cài đặt môi trường nào, cũng không phải dòng lệnh, chỉ là các nhấp chuột đơn giản dựa trên GUI, giống như một người dùng thông thường.

Một nửa phần được thực hiện với plugin Eclipse Git, phần thứ hai (đẩy lên Github) được thực hiện với Mac Github

Tốt đẹp và dễ dàng :)

Tất cả có thể được thực hiện với appp gốc đó nếu tôi bắt đầu tìm hiểu nó, tôi chỉ cần chức năng đẩy từ anh ấy.

Hi vọng nó sẽ giúp ích cho người dùng mac một lần.


0

Tôi phát hiện ra rằng nếu tôi thiết lập xác thực hai bước trong github, Eclipse sẽ không thể kết nối với Github - điều này có ý nghĩa vì xác thực hai bước trong github yêu cầu bạn nhập một số từ SMS (và Eclipse sẽ không ' t có thông tin này).

Nếu đây là trường hợp của bạn, bạn có thể xem xét hủy kích hoạt xác thực hai bước trong github và xem điều đó có hữu ích không.


0

Đối với các khóa ssh hiện có, tôi nghĩ rằng đó là một lỗi trong Eclipse Juno 3.8.

Tôi đã làm gì:

1) Nạp khóa hiện có bằng cách đi tới: Window> Preferences> "Tìm kiếm ssh"> Tab Quản lý khóa> Tải khóa hiện có> Chọn khóa riêng mà bạn đã có

2) Lưu khóa đó bằng cách nhấp vào nút Lưu Khóa Riêng tư . Hãy đặt tên nó là id_dsa_github

3) Bây giờ kiểm tra xem đẩy và kéo có hoạt động hay không. Nó nên được.

4) Bây giờ trong tab chung, hãy xóa khóa riêng tư id_dsa_github và thêm khóa cá nhân trước đó của bạn bằng cách nhấp vào nút Thêm khóa riêng tư

Bây giờ bạn đã tốt để đi. Tôi đoán là phải mất ít nhất một lần để làm tất cả những thứ từ EGit để đăng ký .


0

Tôi gặp phải vấn đề tương tự.

Tôi nghĩ rằng đó là điều gì đó để làm với thông tin đăng nhập và xác thực của tôi.

Sau đó, cuối cùng tôi nhận ra rằng đó là URI tôi đã định cấu hình không phải là biến thể HTTP.

Tôi đang cố gắng đẩy lên SSH URI của Git của mình bằng cấu hình HTTP.

Kiểm tra URL của bạn trong

Git Perspective> Remotes> Origin> Configure Fetch> Change> Đảm bảo prtocal là HTTPS và URL là phiên bản https .


0

Tôi có thể sử dụng bảng điều khiển để đẩy / kéo các kho lưu trữ, nhưng không có trong nhật thực. Trong trường hợp của tôi, eclipse dường như không thể đọc khóa cá nhân SSH của tôi, khóa của tôi bắt đầu bằng:

-----BEGIN OPENSSH PRIVATE KEY-----

Và tôi nhận thấy chìa khóa của đồng nghiệp của tôi bắt đầu bằng:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

Tôi nghĩ hiện tại nhật thực không thể lấy loại khóa mới này (KHÓA RIÊNG TƯ OPENSSH).

Tôi đã giải quyết nó bằng cách: Tạo lại khóa ssh của bạn bằng cách sử dụng lệnh:

ssh-keygen -m PEM -t rsa -b 2048

Điều này sẽ sử dụng cách cũ để tạo khóa: vì vậy nó sẽ bắt đầu với các tiêu đề:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

xem thêm thông tin về:

https://github.com/duplicati/duplicati/issues/3360

Sau đó, bạn có thể tải lại khóa trong eclilpse bằng cách sử dụng Tùy chọn -> Kết nối mạng -> SSH2, nhấp vào "Thêm khóa cá nhân" (vẫn chọn khóa riêng tư của bạn, ngay cả khi bạn đã thấy tên trong danh sách khóa cá nhân, vì eclipse phải Tải lại nó)

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.