git với IntelliJ IDEA: Không thể đọc từ kho lưu trữ từ xa


260

Kể từ một vài tuần, tôi không thể kéo hoặc đẩy từ hoặc đến kho lưu trữ từ xa. Tôi nghĩ rằng nó rất vui khi nâng cấp lên IntelliJ IDEA 14, nhưng tôi cũng có thể tái tạo vấn đề với IDEA 13.1.5.

Chú giải công cụ nói "Tìm nạp thất bại gây tử vong: Không thể đọc từ kho lưu trữ từ xa."

và ngoại lệ trong tab Kiểm soát phiên bản đọc

14:02:37.737: cd C:\dev\project
14:02:37.737: git -c core.quotepath=false fetch origin --progress --prune
java.io.IOException: Padding in RSA public key!
    at com.trilead.ssh2.signature.RSASHA1Verify.decodeSSHRSAPublicKey(RSASHA1Verify.java:37)
    at com.trilead.ssh2.KnownHosts.addHostkey(KnownHosts.java:98)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:414)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:440)
    at com.trilead.ssh2.KnownHosts.addHostkeys(KnownHosts.java:137)
    at org.jetbrains.git4idea.ssh.SSHMain.configureKnownHosts(SSHMain.java:462)
    at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:155)
    at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Sử dụng thiết bị đầu cuối tích hợp của IntelliJ, thực thi git -c core.quotepath=false fetch origin --progress --prune, nó hoạt động như bình thường.

Theo stacktrace, dường như có vấn đề với tôi KnownHosts, vì vậy tôi đã xóa máy chủ git của chúng tôi khỏi đó ~/.ssh/known_hosts, hy vọng IntelliJ sẽ chèn lại nó. Nhưng vấn đề vẫn xuất hiện khi cập nhật qua UI và không có mục mới nào được viết known_hosts; Nghĩ về một số bộ nhớ đệm của tập tin, tôi đã khởi động lại IntelliJ, nhưng không thành công.

Khi làm việc khác git fetchtừ thiết bị đầu cuối, bây giờ tôi được hỏi liệu tôi có muốn thêm máy chủ vĩnh viễn không. Sau đó, nó đã được viết known_hostslại, nhưng IntelliJ vẫn không cho phép tôi cập nhật dự án của mình.

Tôi không tìm thấy bất cứ điều gì về hành vi này trực tuyến, vì vậy tôi đoán đó không phải là một lỗi đã biết với phiên bản IntelliJ mới. Tuy nhiên, tôi đã cập nhật lên 14.0.2, nhưng vấn đề vẫn tồn tại.

IntelliJ được cấu hình để sử dụng thực thi SSH tích hợp.

Có ai có manh mối những gì có thể là vấn đề ở đây?


Bạn đã tự thêm một khóa SSH vào kho git của mình chưa?
aurelius

@aurelius có, chúng tôi đang sử dụng GitLab và tôi đã đăng nó ở đó vào hồ sơ của mình.
stuXnet

IntelliJ không hài lòng với cặp khóa công khai / riêng tư của bạn. Làm thế nào bạn tạo ra nó?
yole

@yole Tôi đã thử cả hai puttygenGit GUI, vì đó cũng là suy nghĩ đầu tiên của tôi. Bạn có chắc chắn đó là về cặp chìa khóa của tôi? Ngoại lệ dường như là về các máy chủ đã biết: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/
Kẻ

Không chắc chắn về downvote - dường như có một vấn đề với các mục được băm / chưa được băm trong know_hosts. Tôi sẽ nghiên cứu sâu hơn một chút và trả lời câu hỏi.
stuXnet

Câu trả lời:


721

Settings --> Version Control --> Gitvà sau đó, trong danh sách thực thi SSH, chọn Native

Kiểm soát phiên bản: Git: SSH thực thi: Đối với dự án hiện tại

Nếu điều này không có ích, hãy đảm bảo rằng người bản xứ sshgitkhách hàng của bạn là phiên bản đủ gần đây.


5
Tôi biết rằng có thể thay đổi triển khai SSH, tôi thậm chí đã viết rõ ràng rằng tôi đang sử dụng chương trình thực thi tích hợp (điều tôi chưa viết: bản địa không hoạt động với tôi trên Windows) Nhưng bạn đăng không trả lời câu hỏi của tôi vấn đề với thực thi tích hợp có thể là gì.
stuXnet

22
Không thể giúp tôi
hellboy

8
@Jimbo Chỉ là giả định của tôi, nhưng đây là cách tôi hiểu: Được xây dựng sử dụng một "Người dùng" khác trong kho lưu trữ của bạn, trước đó "Người dùng" được phép đẩy tệp và thay đổi. "Người dùng" đó đã được đặt lại trong Cập nhật và không còn có thể. Bản địa sử dụng Tài khoản bạn đã đăng nhập trên máy của mình.
AlexG

10
Lạ thật. tôi đã có 3 máy tính riêng biệt bắt đầu làm điều này với tôi sau khi làm việc hơn 2 năm. Điều này đã sửa nó. WTF
Nicholas DiP Square 23/2/18

11
@NicholasDiP Quảng cáo Điều này có liên quan đến việc Github xóa các tiêu chuẩn mã hóa github.com/blog/2507-weak-cryptographic-stiterias-remond . Ngoài ra, các phần mềm khác sử dụng thư viện "tích hợp" (ví dụ TeamCity) cũng bị ảnh hưởng bởi thay đổi này. Ứng dụng khách git gốc của bạn có thể đã cập nhật 2 ngày, đó là lý do tại sao bước này khắc phục nó.
philsch

68

Chuyển đến Tùy chọn> Kiểm soát phiên bản> Git. Đảm bảo rằng tệp thực thi SSH được đặt thành Bản địa. .

Nếu điều này không giải quyết được vấn đề của bạn, tôi khuyên bạn nên tải xuống ứng dụng khách Git như ứng dụng khách GitHub (ứng dụng máy tính để bàn miễn phí) và cố gắng đồng bộ hóa dự án của bạn thông qua ứng dụng. Sau đó quay trở lại IntelliJ và kiểm tra xem nó có hoạt động không.


1
Hoạt động tốt trong Android Studio là tốt. Vấn đề này đã khiến tôi phát điên, cảm ơn @Farbod jan!
Javad Sadeqzadeh

1
Toggling SSH executablelàm việc cho tôi. Tôi cũng đã sẵn sàng Native.
nic

1
Đối với mọi người đang cân nhắc quay lại tích hợp sẵn: trước tiên hãy xem xét cập nhật SSH gốc của bạn. Tệp thực thi riêng được sử dụng trên toàn hệ điều hành và sẽ hoạt động nhất quán trong và ngoài IDE của bạn.
milosmns

52

Tôi bắt đầu gặp Could not read from remote repositorylỗi gần đây khi làm việc vớikho. Thông số kỹ thuật của tôi:

  • IntelliJ IDEA 2017.3.4 (Phiên bản cuối cùng)
  • Cài đặt -> Kiểm soát phiên bản -> Git -> SSH thực thi -> Tích hợp
  • Fedora Linux

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

Tất nhiên những vấn đề đó chỉ xảy ra khi cố gắng đẩy / kéo / tìm nạp, v.v. từ IDE - thực thi cùng một lệnh từ dòng lệnh hoạt động như một bùa mê.

Giải pháp hiệu quả với tôi

Tôi không muốn chuyển từ Built-InSSH thực thi sang Native, chủ yếu là do máy khách SSH gốc của tôi hỏi tôi mật khẩu bất cứ khi nào tôi cố gắng đồng bộ hóa với kho lưu trữ từ xa.

Tôi đã giải quyết vấn đề này bằng cách chuyển từ URL từ xa SSH sang URL HTTPS. Theo trang trợ giúp GitHub này - nên sử dụng URL HTTPS thay vì SSH .

Thay đổi URL từ xa SSHsangHTTPS

Trong IntelliJ IDEA, hãy truy cập VCS -> Git -> Từ xa ... , chọn hàng có chứa "nguồn gốc" và nhấp vào nút chỉnh sửa. Nếu bạn lưu trữ kho lưu trữ của mình trên GitHub, hãy thay thế URL SSH của bạn từ:

git@github.com:USERNAME/REPOSITORY.git

đến:

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

Bạn cũng có thể nhận URL HTTPS từ trang chủ kho lưu trữ GitHub của mình - nhấp vào nút "Sao chép hoặc tải xuống" và nhấp vào liên kết "Sử dụng HTTPS" để hiển thị URL HTTPS của kho lưu trữ của bạn:

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

CẬP NHẬT 2018-03-13

JetBrains vừa phát hành IntelliJ IDEA 2017.3.5 bao gồm sửa lỗi để truy cập SSH vào GitHub - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -to-github /


2
Đây là giải pháp phù hợp với tôi trên MacBook Pro, PHPStorm 2017.3.4) (ngày 30 tháng 1 năm 2018 trước ngày xây dựng 1/31 cần thiết được ghi nhận).
Edward Barnard

1
Giải pháp này hoạt động, thông thường, vấn đề là nhiều người dùng cố gắng sử dụng khóa SSH để xác định từ xa, nhưng nó gây ra lỗi cho bạn. Chuyển đổi từ SSH sang HTTPS hầu hết là giải pháp.
Kourosh

1
sử dụng liên kết dựa trên https slove vấn đề của tôi trên phiên bản PhpStorme 2018.1.5
dmitri

1
Giải pháp này hiệu quả với tôi trên MacBook Pro, Intellij IDEA.
shaojun lyu

1
Cũng hoạt động với GitLab để thay đổi URL thành liên kết https.
Master James

23

Máy khách SSH tích hợp của IntelliJ dường như bămknown_hosts , nhưng cái tôi có tên máy chủ của nó ở dạng văn bản rõ ràng.

Khi tôi xóa tệp và để IntelliJ tạo một tệp mới, chỉ với máy chủ GitLab (băm) của tôi và không có gì khác, nó đã hoạt động.

Bạn cũng không thể trộn nó - giữ một số mục chưa được xóa cùng với các mục được băm cho IntelliJ. Vì vậy, bạn phải định cấu hình các máy khách SSH khác của mình để sử dụng các máy chủ được băm .


14
  1. Đi tới Cài đặt-> Git-> Chọn Bản địa trong trình đơn thả xuống thực thi SSH. (Nếu nó không được chọn)
  2. Sao chép liên kết HTTPS từ kho lưu trữ Github của bạn.
  3. Chuyển đến VCS-> Git-> Điều khiển từ xa ..
  4. Chỉnh sửa nguồn gốc và Dán liên kết HTTPS trong trường URL.
  5. Nhấn Ctrl+Shift+kvà đẩy dự án vào kho lưu trữ. Nó hoạt động.

1
Kết nối giữa SSH và thay thế URL bằng giao thức HTTPS ở đâu?
sweisgerber.dev

tôi chỉ muốn biết, ở đâu trên trái đất có ai nhắc đến github ở đây?
Emad Ha

Điều này làm việc cho tôi, Nó hỏi tôi về thông tin bitbucket của tôi, sau đó nó tốt để đi.
Marlon

13

trong pyCharm,

file|
    v-->settings|
                v-->Version Control|
                                   v-->Git

Ở đây thay đổi SSH executabletừ Built-inthànhNative

sau đó nhấn applyclose


11

Tôi đã giải quyết vấn đề này bằng cách thêm lại kho lưu trữ từ xa: VCS -> Git -> Từ xa.


4
Không phải là một lựa chọn tốt cho trường hợp của tôi ... Bây giờ tôi không thể thêm lại lần nữa, nhận được thông báo "Điều khiển từ xa không hợp lệ [...] Kiểm tra URL từ xa không thành công: Không thể đọc từ kho lưu trữ từ xa. " Quan sát: Tôi có thể kết nối để github qua git cli.
Ricardo

1
Vấn đề tương tự như @Ricardo
Uri Goren

@uri không có giải pháp nào hiệu quả với tôi. Tôi đã cài đặt 2018 EAP đã cố định một vấn đề báo cáo on Dec 2017. Cuối cùng Nó làm việc! xem thêm bài đăng Cập nhật-ssh-key-to-use-new-cụm từ mật khẩu
Ricardo

Tôi đã thêm ý kiến ​​cho câu hỏi, nhưng chúng bị ẩn. Vì vậy, tôi đã thêm một câu trả lời quá.
Ricardo

Đối với tôi không biết lý do nó hoạt động cho PHPStorm 2017.4. Cảm ơn!
Maksim B.

5

những gì @yabin ya nói là một giải pháp tuyệt vời, chỉ cần nhắc nhở bạn rằng: nếu bạn vẫn gặp vấn đề tương tự, hãy truy cập Cài đặt-Phiên bản Control-GitHub và bỏ chọn Clone git repositories using ssh.


5

Bạn cần phải tạo một khóa SSH mới và thêm nó vào ssh-agent của bạn. Đối với điều đó bạn nên theo liên kết này .

Sau khi bạn tạo khóa chung và thêm nó vào tài khoản github của mình, bạn nên sử dụng tùy chọn Tích hợp (không phải bản địa) trong Cài đặt-> Kiểm soát phiên bản -> Git -> SSH thực thi trong Ý tưởng Intellij của bạn.


1
Đối với tôi chuyển sang Nativegiải quyết vấn đề, trên Mac
Jeroen Vermeulen - Magehost

Tôi đã vật lộn với vấn đề này trong khoảng một tuần hoặc lâu hơn (may mắn là tôi có thể sử dụng dòng lệnh git trong thời gian đó) .. Cuối cùng tôi đã giải quyết nó như thế nào khi tạo lại Khóa SSH, nhưng tôi cũng phải khởi động lại máy tính và sử dụng dòng lệnh ssh-thêm.
Crenguta S

3

Gần đây chúng tôi đã cập nhật từ IntelliJ 12 lên IntelliJ 14 Ultimate và chúng tôi cũng gặp phải vấn đề này. Giải pháp của chúng tôi là vô hiệu hóa proxy trong cài đặt. Chúng tôi cũng đã ngừng nhớ mật khẩu một lần, nhưng có thể không chắc chắn nếu điều đó có ích. Cài đặt proxy nằm dưới Cài đặt tệp-Cài đặt-Hành vi & Hành vi-Hệ thống-Proxy HTTP.


Nó thật thú vị! Vì vậy, bạn đã có cùng stacktrace?
stuXnet

Chúng tôi có cùng một stacktrace (Tôi đã thay đổi câu trả lời một chút btw)
Koen de Roo

3

điều này đã giúp tôi khắc phục vấn đề hiện tại

Nếu bạn đang sử dụng macOS Sierra 10.12.2 trở lên, bạn sẽ cần sửa đổi tệp ~ / .ssh / config để tự động tải khóa vào ssh-agent và lưu cụm mật khẩu trong móc khóa của bạn.

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

nguồn


2

Tôi đã giải quyết vấn đề này bằng cách xóa mật khẩu cho khóa ssh trong PuTTY.


2

Tôi đã giải quyết vấn đề này bằng cách thêm khóa riêng SSH vào tác nhân ssh trong lệnh:

$ ssh-add -K ~/.ssh/id_rsa

Và cài đặt Settings --> Version Control --> Git, và sau đó, trong danh sách thả xuống thực thi SSH, chọnNative


1

Không phải là một giải pháp / cách giải quyết nhưng có lẽ là một câu trả lời cho câu hỏi "vấn đề có thể là gì":

Gitlab và 'jetbrains được xây dựng trong thư viện ssh' không hoạt động tốt với nhau. Thư viện muốn sử dụng thuật toán trao đổi khóa dựa trên SHA1 trong đó gitlab (mặc định) chỉ cho phép thuật toán trao đổi khóa dựa trên SHA2.

Điều này đã được báo cáo cho ít nhất TeamCity ( https://youtrack.jetbrains.com/su/TW-47704 ).

Thực tế đó cũng có thể là nguyên nhân gây ra sự cố kéo / đẩy của bạn trong IntelliJ và cũng là vấn đề đẩy của tôi trong PhpStorm dựa trên các máy bay phản lực ASSUMPTION sử dụng cùng một 'thư viện tích hợp' cho tất cả phần mềm của họ.


0

Tôi đã có vấn đề này với một ngã ba từ một số khóa học trực tuyến. Tôi đã nhân bản ngã ba của mình và gặp phải lỗi cấp phép. Tôi không thể hiểu tại sao nó cứ khăng khăng tôi là người dùng của tôi từ công ty khác của tôi. Nhưng như các bình luận trước đã đề cập, tôi cóClone git repositories using ssh kiểm tra cài đặt và tôi đã quên thêm khóa ssh vào tài khoản mới của mình. Vì vậy, tôi đã làm và sau đó vẫn không thể thúc đẩy vì tôi đã gặp lỗi NÀY. Cách tôi giải quyết là đẩy bằng ứng dụng khách Github Desktop.

Hành trình:

  1. Khi bạn mở tài khoản GitHub mới, hãy đảm bảo thêm khóa ssh vào tài khoản
  2. Sử dụng các khóa ssh khác nhau cho các tài khoản khác nhau
  3. Nói chung, tôi gặp phải một số vấn đề về GitHub trên IntelliJ ít nhất một hoặc hai lần cho mỗi dự án. Hãy chắc chắn rằng bạn có một bản sao của máy tính để bàn GitHub và tải các dự án của bạn vào đó. Nó có thể và sẽ giúp bạn với rất nhiều vấn đề bạn có thể gặp phải với Intellij - không chỉ vấn đề này. Nó thực sự là một ứng dụng GUI thực sự tốt và miễn phí!
  4. Có thể có ý nghĩa để làm những gì @yabin gợi ý và sử dụng ứng dụng khách gốc trên máy Mac

0

Điều duy nhất có ích trong trường hợp của tôi (chuyển đổi SSH-execabe không hoạt động) là tắt plugin git và git-Flow, khởi động lại intellij và kích hoạt lại các plugin đó ...


0

Đừng quên liên hệ với quản trị viên hệ thống của bạn.

Bởi vì trong trường hợp của tôi, tôi đã có mọi thứ được cấu hình đúng (SSH cũng đã thêm) nhưng tôi đã gặp lỗi tương tự

truy cập kho lưu trữ bị từ chối. gây tử vong: Không thể đọc từ kho lưu trữ từ xa.

Lý do là tôi chỉ có quyền truy cập đọc vào kho lưu trữ đó. Vì vậy, với việc lãng phí thời gian quý báu của bạn, vui lòng kiểm tra xem đó là điều đầu tiên. Cảm ơn bạn.


Bạn đã java.io.IOException: Padding in RSA public key!vào nhật ký khi không có đủ quyền? Điều đó thật thú vị và có thể chỉ ra một lỗi trong xử lý SSH của IntelliJ.
stuXnet

0

Nếu vẫn thất bại, chỉ cần đi đến thiết bị đầu cuối của bạn và gõ từ thư mục của bạn:

git push origin master

Đó là cách mà các vị thần ban đầu muốn nó trở thành.


0

Tôi đã gặp vấn đề này với WebStorm gần đây ( tháng 2 năm 2018 ) và không có giải pháp nào trước đó (sau đó) làm việc cho tôi. Sau khi dành một vài giờ để khắc phục sự cố và nghiên cứu, tôi đã cài đặt phiên bản EAP 2018 và bây giờ nó hoạt động!


Một vấn đề mới được báo cáo vào tháng 12/2017 trên IntelliJ Idea> Hệ thống con VCS / Git đã được sửa trong bản dựng 181.2445 (hoặc bất kỳ bản dựng mới nhất nào sau ngày 31 tháng 1 năm 2018).

Xem thêm bài đăng Cập nhật-ssh-key-to-use-new-cụm từ


Cảm ơn các liên kết. Đối với những người khác TL; DR, nhận xét chính đối với tôi là Nate: "Một giải pháp hiệu quả với tôi: trong Cài đặt> Giao diện & Hành vi> Cài đặt hệ thống> Mật khẩu ..." ... Chuyển sang Không lưu, quên mật khẩu sau khi khởi động lại , Thực hiện Kéo, sau đó chuyển lại.
Matthew Weber

0

Vấn đề được giải quyết trong máy tính của tôi.
cài đặt -> Phiên bản Control -> Git , và sau đó, Trong SSH thực thi thả xuống, chọn built-in tùy chọn.

và cài đặt git phiên bản cũ hơn như 2.14.2 .
Nó hoạt động tốt!


0

Kiểm tra cài đặt proxy Idea nếu bạn đang cố gắng kết nối với các dịch vụ đám mây như github hoặc bitbucket. Điều này có thể được thực hiện bằng cách tìm kiếm các plugin để cài đặt hoặc bằng cách kiểm tra các bản cập nhật phần mềm trong helpmenu. Nếu cài đặt internet / proxy không chính xác, hãy thêm các mục hợp lệ hoặc đặt thànhauto


0

Điều này đã sửa nó cho tôi (Tôi đang sử dụng SSH, không phải HTTPS và git gốc, không phải tích hợp) trên MacOS High Sierra (10.13.5) / IntelliJ IDEA 2018.4:

Tệp -> Bộ nhớ cache không hợp lệ và khởi động lại


0

Tôi đã giải quyết vấn đề đơn giản bằng cách đảm bảo rằng tôi có url git SSH chính xác mà không có bất kỳ dấu cách nào:

git@github.com:USERNAME/REPOSITORY.git


0

Tôi đã thử tất cả các giải pháp ở trên (Bản địa, thay đổi url của kho lưu trữ VCS, cập nhật Git, cập nhật IDEA, Caches không hợp lệ), nhưng không có gì giúp tôi. Cuối cùng tôi tìm thấy giải pháp phù hợp với tôi.

GIẢI PHÁP: Tôi đã đóng Ý tưởng và thay thế nội dung của tệp ~\.IntelliJIdea20xx.x\config\options\git.xmlbằng cách này:

<application>
  <component name="Git.Application.Settings">
    <option name="SSH_EXECUTABLE" value="IDEA_SSH" />
  </component>
</application>

Sau đó, tôi bắt đầu IDEA, cố gắng kiểm tra kho lưu trữ SSH GIT và nó cũng hoạt động và các dự án hiện có cũng hoạt động. Thực tế thú vị là khi tôi chuyển sang NATIVE trong Cài đặt ý tưởng, kho lưu trữ không hoạt động.


0

Tôi đã từng gặp vấn đề tương tự. Đã sử dụng bitbucket và gặp sự cố khi kéo / cập nhật kho lưu trữ trên Intellij. Đã thử thay đổi thành bản địa và trở lại để tích hợp, nhưng nó không hoạt động. Sau đó nhận ra rằng tôi đã tạo khóa ssh bằng cụm mật khẩu.

Tôi đã tạo lại khóa mà không có cụm mật khẩu và sau đó thêm nó vào bitbucket. Nó đã làm việc !


0

Tôi đã thử Nativetùy chọn nhưng không hiệu quả với tôi, cuối cùng tạo lại khóa ssh theo cách cũ và thêm -mtùy chọn trong ssh-keygenlệnh. IDEA cũng hoạt động với build-intùy chọn là tốt.

ssh-keygen -m PEM -t rsa -b 4096 -C "email@..."

0

Khi thêm URL từ xa, hãy thay đổi nó từ đây

https://username@bitbucket.org/usernameowner/project-name.git

đến đây

https://bitbucket.org/usernameowner/project-name.git



-1

Đảm bảo rằng bạn đã thay đổi liên kết đến kho git thành HTTPStùy chọn sau khi bạn đã chọn "Bản địa" trong cài đặt IntelliJ nếu SSHkhông hoạt động.

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.