git dengan IntelliJ IDEA: Tidak bisa membaca dari repositori jarak jauh

260

Sejak beberapa minggu, saya tidak dapat menarik atau mendorong dari atau ke repositori jarak jauh. Saya pikir itu terjadi ketika meningkatkan ke IntelliJ IDEA 14, tetapi saya dapat mereproduksi masalah dengan IDEA 13.1.5 juga.

Tooltip mengatakan "Ambil gagal fatal: Tidak bisa membaca dari repositori jarak jauh."

dan pengecualian di tab Kontrol Versi berbunyi

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.

Menggunakan terminal built-in dari IntelliJ, mengeksekusi git -c core.quotepath=false fetch origin --progress --prune, ia berfungsi sebagaimana mestinya.

Menurut stacktrace, sepertinya ada masalah dengan saya KnownHosts, jadi saya menghapus server git kami ~/.ssh/known_hosts, berharap IntelliJ akan memasukkannya lagi. Tetapi masalah masih muncul ketika memperbarui melalui UI, dan tidak ada entri baru yang ditulis known_hosts; berpikir tentang beberapa caching file, saya memulai ulang IntelliJ, tanpa hasil.

Ketika melakukan hal lain git fetchdari terminal, sekarang saya ditanya apakah saya ingin menambahkan server secara permanen. Setelah itu, sudah ditulis known_hostslagi, tetapi IntelliJ masih tidak akan membiarkan saya memperbarui proyek saya.

Saya belum menemukan apa pun tentang perilaku ini secara online, jadi saya kira itu bukan bug yang dikenal dengan versi IntelliJ yang baru. Meskipun demikian, saya memperbarui ke 14.0.2, tetapi masalahnya masih ada.

IntelliJ dikonfigurasikan untuk menggunakan executable SSH bawaan.

Adakah yang tahu apa masalahnya di sini?

stuXnet
sumber
Apakah Anda secara manual menambahkan kunci SSH ke repositori git Anda?
aurelius
@aurelius ya, kami menggunakan GitLab, dan saya telah mempostingnya di profil saya.
stuXnet
IntelliJ tidak senang dengan pasangan kunci publik / pribadi Anda. Bagaimana Anda menghasilkannya?
Yole
@Yole Saya mencoba keduanya puttygendan Git GUI, karena itu adalah pikiran pertama saya juga. Apakah Anda yakin ini tentang pasangan kunci saya? Pengecualian tampaknya tentang host yang dikenal: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
stuXnet
Tidak yakin tentang downvote - tampaknya ada masalah dengan entri yang di-hash / tidak di-cache di known_hosts. Saya akan menggali lebih jauh dan menjawab pertanyaan itu.
stuXnet

Jawaban:

721

Settings --> Version Control --> Git, dan kemudian, di dropdown SSH yang dapat dieksekusi, pilih Native

Kontrol Versi: Git: SSH dapat dieksekusi: Untuk proyek saat ini

Jika ini tidak membantu, pastikan versi asli sshdan gitklien Anda cukup baru.

yabin ya
sumber
5
Saya tahu bahwa mungkin untuk mengubah implementasi SSH, saya bahkan secara eksplisit menulis bahwa saya menggunakan built-in executable (apa yang belum saya tulis: native tidak bekerja untuk saya di Windows) Tetapi posting Anda tidak menjawab pertanyaan saya apa masalah dengan built-in executable bisa.
stuXnet
22
Tidak bisa membantu saya
hellboy
8
@Jimbo Hanya asumsi saya, tetapi ini adalah bagaimana saya memahaminya: Dibangun menggunakan "Pengguna" lain di repositori Anda, sebelumnya bahwa "Pengguna" diizinkan untuk mendorong file dan perubahan. "Pengguna" itu telah dipindahkan dalam Pembaruan dan tidak lagi dapat. Native menggunakan Akun yang Anda masuk di mesin Anda.
AlexG
10
Aneh. Saya punya 3 komputer yang terpisah semua mulai melakukan ini kepada saya setelah bekerja selama 2+ tahun. ini memperbaikinya. WTF
Nicholas DiPiazza
11
@NicholasDiPiazza Ini terkait dengan Github menghapus standar kriptografi github.com/blog/2507-weak-cryptographic-standards-removed . Juga perangkat lunak lain yang menggunakan pustaka "built-in" (mis. TeamCity) dipengaruhi oleh perubahan ini. Klien asli git Anda mungkin sudah terbaru, itu sebabnya langkah ini memperbaikinya.
philsch
68

Pergi ke Preferensi> Kontrol Versi> Git. Pastikan SSH yang dapat dieksekusi diatur ke "Asli." (Jika sudah demikian, alihkan ke "Built-in," terapkan, lalu kembali lagi ke "Asli.").

Jika ini tidak menyelesaikan masalah Anda, saya sarankan untuk mengunduh klien Git seperti klien GitHub (aplikasi desktop gratis) dan mencoba menyinkronkan proyek Anda melalui aplikasi. Kemudian kembali ke IntelliJ dan periksa apakah itu berfungsi.

Farbod
sumber
1
Berfungsi dengan baik di Android Studio juga. Masalah ini membuat saya marah, terima kasih @ Farbod jan!
Javad Sadeqzadeh
1
Toggling SSH executablebekerja untuk saya. Saya juga sudah aktif Native.
nic
1
Untuk semua orang yang mempertimbangkan untuk kembali ke bawaan: pertimbangkan untuk memperbarui SSH asli Anda terlebih dahulu. Eksekusi asli digunakan di seluruh OS dan akan berperilaku konsisten di dalam dan di luar IDE Anda.
milosmns
52

Saya mulai mendapatkan Could not read from remote repositorykesalahan baru-baru ini ketika bekerja dengan sayagudang. Spesifikasi saya:

  • IntelliJ IDEA 2017.3.4 (Edisi Utama)
  • Pengaturan -> Kontrol Versi -> Git -> SSH dapat dieksekusi -> Built-In
  • Fedora Linux

masukkan deskripsi gambar di sini

Tentu saja masalah-masalah itu terjadi hanya ketika mencoba untuk mendorong / menarik / mengambil dll dari IDE - menjalankan perintah yang sama dari baris perintah bekerja seperti pesona.

Solusi yang berhasil untuk saya

Saya tidak ingin beralih dari Built-InSSH yang dapat dieksekusi Native, terutama karena klien SSH asli saya meminta kata sandi kapan saja saya mencoba menyinkronkan dengan repositori jarak jauh.

Saya memecahkan masalah ini dengan beralih dari URL jarak jauh SSH ke URL HTTPS. Menurut halaman bantuan GitHub ini - disarankan untuk menggunakan URL HTTPS bukan SSH .

Mengubah URL jarak jauh dari SSHmenjadiHTTPS

Di IntelliJ IDEA, buka VCS -> Git -> Remotes ... , pilih baris yang berisi "asal" dan klik tombol edit. Jika Anda meng-host repositori Anda di GitHub, ganti URL SSH Anda dari:

[email protected]:USERNAME/REPOSITORY.git

untuk:

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

Anda juga bisa mendapatkan URL HTTPS dari beranda repositori GitHub - klik tombol "Kloning atau unduh" dan klik tautan "Gunakan HTTPS" untuk menampilkan URL HTTPS repositori Anda:

masukkan deskripsi gambar di sini

UPDATE 2018-03-13

JetBrains baru saja merilis IntelliJ IDEA 2017.3.5 yang mencakup perbaikan untuk akses SSH ke GitHub - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -untuk-github /

Szymon Stepniak
sumber
2
Ini adalah solusi yang bekerja untuk saya di MacBook Pro, PHPStorm 2017.3.4) (30 Januari 2018 sebelum tanggal pembuatan 1/31 yang perlu diperhatikan).
Edward Barnard
1
Solusi ini berhasil, biasanya, masalahnya adalah banyak pengguna mencoba menggunakan kunci SSH untuk mendefinisikan jarak jauh, tetapi itu memberi Anda kesalahan. Beralih dari SSH ke HTTPS adalah solusi sebagian besar kali.
Kourosh
1
menggunakan tautan berdasarkan https slove masalah saya di PhpStorme versi 2018.1.5
dmitri
1
Solusi ini bekerja untuk saya di MacBook Pro, Intellij IDEA.
shaojun lyu
1
Juga bekerja dengan GitLab untuk mengubah URL ke tautan https.
Master James
23

Klien SSH bawaan IntelliJ tampaknya hash-nyaknown_hosts , tapi yang saya punya nama host-nya dalam teks yang jelas.

Ketika saya menghapus file dan membiarkan IntelliJ membuat yang baru, hanya dengan server GitLab (hash) saya dan tidak ada yang lain, itu berhasil.

Mencampurnya juga tidak mungkin - simpan beberapa entri yang tidak diacah bersama dengan entri yang di-hash untuk IntelliJ. Jadi, Anda harus mengonfigurasi klien SSH Anda yang lain untuk menggunakan host hash .

stuXnet
sumber
14
  1. Pergi ke Pengaturan-> Git-> Pilih Asli di dropdown SSH dieksekusi. (Jika tidak dipilih)
  2. Salin tautan HTTPS dari repositori Github Anda.
  3. Pergi ke VCS-> Git-> Jarak Jauh ..
  4. Edit asal dan Tempel tautan HTTPS di bidang URL.
  5. Tekan Ctrl+Shift+kdan dorong proyek ke repositori. Berhasil.
Sarvesh Athawale
sumber
1
Di mana koneksi antara SSH & mengganti URL dengan protokol HTTPS?
sweisgerber.dev
Saya hanya ingin tahu, di mana ada orang yang menyebutkan github di sini?
Emad Ha
Ini bekerja untuk saya, Ia meminta saya untuk kredensial bitbucket saya, maka bagus untuk digunakan.
Marlon
13

di pyCharm,

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

Di sini berubah SSH executabledari Built-inmenjadiNative

lalu tekan applydanclose

Mohideen bin Mohammed
sumber
11

Saya memecahkan masalah ini dengan menambahkan kembali repositori jarak jauh: VCS -> Git -> Remotes.

Nikita
sumber
4
Bukan pilihan yang baik pada kasus saya ... Sekarang saya tidak dapat menambahkannya lagi, mendapatkan pesan " Remote [...] Tes URL jarak jauh gagal: Tidak dapat membaca dari repositori jarak jauh. " Obs: Saya dapat menghubungkan untuk github melalui git cli.
Ricardo
1
Masalah yang sama seperti @Ricardo
Uri Goren
@uri tidak ada solusi yang bekerja untuk saya. Saya menginstal EAP 2018 yang telah memperbaiki masalah yang dilaporkan pada Desember 2017. Akhirnya berhasil! lihat juga pos Perbarui-ssh-key-to-use-new-passphrase
Ricardo
Saya menambahkan komentar ke pertanyaan, tetapi mereka disembunyikan. Jadi saya menambahkan jawaban juga.
Ricardo
Untuk alasan saya tidak diketahui itu berfungsi untuk PHPStorm 2017.4. Terima kasih!
Maksim B.
5

apa yang dikatakan @yabin ya adalah solusi keren, hanya mengingatkan Anda bahwa: jika Anda masih mendapatkan masalah yang sama, buka Pengaturan-Versi Control-GitHub dan hapus centang Clone git repositories using ssh.

XYz Amos
sumber
5

Anda perlu Menghasilkan kunci SSH baru dan menambahkannya ke agen ssh Anda. Untuk Itu Anda harus mengikuti tautan ini .

Setelah Anda membuat kunci publik dan menambahkannya ke akun github Anda, Anda harus menggunakan opsi Built-in (bukan Native) pada Pengaturan-> Kontrol Versi -> Git -> SSH yang dapat dieksekusi di Ide Intellij Anda.

abshar
sumber
1
Bagi saya beralih untuk Nativemenyelesaikan masalah, pada Mac
Jeroen Vermeulen - MageHost
Saya berjuang dengan masalah ini selama sekitar satu minggu atau lebih (untungnya, saya bisa menggunakan git command line sementara itu) .. Bagaimana saya akhirnya menyelesaikannya adalah regenerasi SSH Keys saya, tetapi saya juga harus me-restart komputer saya dan menggunakan command line ssh-add.
Crenguta S
3

Kami baru saja memperbarui dari IntelliJ 12 ke IntelliJ 14 Ultimate dan kami juga mengalami masalah ini. Solusi kami adalah menonaktifkan proxy di pengaturan. Kami juga berhenti mengingat kata sandi sekali, tetapi mungkin tidak yakin apakah itu membantu. Pengaturan proxy berada di bawah Pengaturan File-Pengaturan-Penampilan & Perilaku-Sistem-HTTP Proxy.

Koen de Roo
sumber
Itu menarik! Jadi Anda punya stacktrace yang sama?
stuXnet
Kami memiliki stacktrace yang sama (saya telah mengubah jawabannya sedikit btw)
Koen de Roo
3

ini membantu saya untuk memperbaiki masalah saat ini

Jika Anda menggunakan macOS Sierra 10.12.2 atau lebih baru, Anda perlu memodifikasi file ~ / .ssh / config Anda untuk secara otomatis memuat kunci ke ssh-agent dan menyimpan frasa sandi di gantungan kunci Anda.

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

sumber

Jenya Kirmiza
sumber
2

Saya memecahkan masalah ini dengan menghapus kata sandi untuk kunci ssh di Putty.

Steve Borland
sumber
2

Saya telah menyelesaikan ini dengan menambahkan kunci pribadi SSH saya ke ssh-agent dalam perintah:

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

Dan pengaturan Settings --> Version Control --> Git, dan kemudian, di dropdown SSH yang dapat dieksekusi, pilihNative

Volodymyr
sumber
1

Bukan solusi / solusi tetapi mungkin jawaban untuk pertanyaan 'apa yang bisa menjadi masalah':

Gitlab dan 'jetbrains built in ssh library' tidak bekerja dengan baik. Perpustakaan ingin menggunakan algoritma pertukaran kunci berbasis SHA1 di mana gitlab (default) hanya memungkinkan algoritma pertukaran kunci berbasis SHA2 itu.

Ini dilaporkan setidaknya untuk TeamCity ( https://youtrack.jetbrains.com/issue/TW-47704 ).

Fakta bahwa itu juga mungkin menjadi penyebab masalah pull / push Anda di IntelliJ, dan juga masalah push-saya di PhpStorm didasarkan pada ASSUMPTION jetbrains yang menggunakan 'built in library' yang sama untuk semua perangkat lunak mereka.

ArjanW
sumber
0

Saya punya masalah dengan garpu dari beberapa kursus online. Saya kloning garpu saya dan mengalami kesalahan izin. Saya tidak mengerti mengapa itu bersikeras saya adalah pengguna saya dari perusahaan saya yang lain. Tetapi seperti yang disebutkan oleh komentator sebelumnya, Clone git repositories using sshpengaturan saya sudah diperiksa dan saya lupa menambahkan kunci ssh ke akun baru saya. Jadi saya lakukan dan kemudian masih tidak bisa mendorong karena saya mendapat kesalahan INI. Cara saya menyelesaikannya adalah dengan mendorong menggunakan klien Github Desktop.

Takeaways:

  1. Saat Anda membuka akun GitHub baru, pastikan untuk menambahkan kunci ssh
  2. Gunakan kunci ssh yang berbeda untuk akun yang berbeda
  3. Secara umum saya mengalami beberapa masalah GitHub di IntelliJ setidaknya sekali atau dua kali untuk setiap proyek. Pastikan Anda memiliki salinan desktop GitHub dan memuat proyek Anda ke dalamnya. Itu bisa dan akan membantu Anda dengan banyak masalah yang mungkin Anda hadapi dengan Intellij - bukan hanya yang ini. Ini sebenarnya adalah klien GUI yang sangat bagus dan gratis!
  4. Mungkin masuk akal untuk melakukan apa yang disarankan @yabin dan menggunakan klien asli pada Mac
Aron T
sumber
0

Satu-satunya hal yang membantu dalam kasus saya (beralih SSH-executabe tidak berfungsi) adalah untuk menonaktifkan plugin git dan git-flow, restart intellij dan aktifkan kembali plugin tersebut ...

Patrick Dorn
sumber
0

Jangan lupa untuk menghubungi administrator sistem Anda.

Karena dalam kasus saya, saya sudah mengatur semuanya dengan benar (SSH juga menambahkan) tetapi saya mendapatkan kesalahan yang sama

akses repositori ditolak. fatal: Tidak bisa membaca dari repositori jarak jauh.

alasannya adalah saya hanya punya akses baca ke repositori itu. Karena itu tanpa membuang waktu berharga Anda, periksa itu sebagai hal pertama. Terima kasih.

Rahal Kanishka
sumber
Anda masuk java.io.IOException: Padding in RSA public key!log ketika tidak ada izin yang memadai? Itu menarik dan bisa menunjukkan bug dalam penanganan SSH IntelliJ.
stuXnet
0

Jika semuanya gagal, buka saja terminal Anda dan ketik dari folder Anda:

git push origin master

Begitulah yang diinginkan para Dewa semula.

Wilmer E. Henao
sumber
0

Saya memiliki masalah ini dengan WebStorm baru-baru ini ( Februari / 2018 ) dan tidak ada solusi (kemudian) sebelumnya yang bekerja untuk saya. Setelah menghabiskan beberapa jam untuk pemecahan masalah dan meneliti, saya menginstal versi EAP 2018 dan sekarang berfungsi!


Sebuah baru masalah melaporkan pada Desember / 2017 tentang IntelliJ Idea> VCS / Git subsistem yang tetap dalam membangun 181,2445 (atau membangun terbaru setelah 31 / Jan / 2018).

Lihat juga postingan Perbarui-ssh-key-to-use-new-passphrase

Ricardo
sumber
Terima kasih untuk Tautannya. Bagi yang lain TL; DR, komentar utama bagi saya adalah Nate: "Solusi yang bekerja untuk saya: di bawah Pengaturan> Penampilan & Perilaku> Pengaturan Sistem> Kata Sandi ..." ... Beralih ke Jangan menyimpan, lupakan kata sandi setelah restart , Lakukan Tarik, lalu alihkan kembali.
Matius Weber
0

Masalahnya terpecahkan di pc saya.
pengaturan -> Kontrol Versi -> Git , dan kemudian, Dalam drop-down SSH yang dapat dieksekusi, pilih bawaan pilihan.

dan instal git versi yang lebih lama, seperti 2.14.2 .
Ini bekerja dengan baik!

Viral Nakrani
sumber
0

Periksa pengaturan proxy Ide jika Anda mencoba untuk terhubung ke layanan cloud seperti github atau bitbucket. Ini dapat dilakukan dengan mencari plugin untuk diinstal atau dengan memeriksa pembaruan perangkat lunak di helpmenu. Jika pengaturan internet / proxy tidak benar, tambahkan entri yang valid atau set keauto

binithb
sumber
0

Ini memperbaikinya untuk saya (saya menggunakan SSH, bukan HTTPS, dan git asli, bukan built-in) di MacOS High Sierra (10.13.5) / IntelliJ IDEA 2018.4:

File -> Cache dan Restart Tidak Valid

connexo
sumber
0

Saya memecahkan masalah hanya dengan memastikan bahwa saya memiliki url SSH git yang benar tanpa spasi tambahan:

[email protected]:USERNAME/REPOSITORY.git
Sugoi Reed
sumber
0

Saya mencoba semua solusi di atas (Asli, mengubah url repositori VCS, memperbarui Git, memperbarui IDEA, membatalkan Cache), tetapi tidak ada yang membantu saya. Akhirnya saya menemukan solusi yang cocok untuk saya.

SOLUSI: Saya menutup Ide dan mengganti konten file ~\.IntelliJIdea20xx.x\config\options\git.xmldengan ini:

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

Lalu saya mulai IDEA, coba checkout repositori SSH GIT dan itu berhasil dan proyek yang ada juga berfungsi. Fakta yang menarik adalah ketika saya beralih ke NATIVE di Pengaturan Ide, repositori tidak berfungsi.

pengguna3231514
sumber
0

Saya memiliki masalah yang sama. Menggunakan bitbucket dan mengalami kesulitan dalam menarik / memperbarui repositori di Intellij. Mencoba mengubah ke asli dan kembali ke built in, tetapi tidak berhasil. Kemudian menyadari bahwa saya telah membuat kunci ssh dengan frasa sandi.

Saya membuat ulang kunci tanpa frasa sandi dan kemudian menambahkannya ke bitbucket. Berhasil!

NullPointer
sumber
0

Saya mencoba Nativeopsi tetapi tidak bekerja untuk saya, akhirnya regenerasi kunci ssh dengan cara lama dan menambahkan -mopsi dalam ssh-keygenperintah. IDEA juga berfungsi dengan build-inopsi sama baiknya.

ssh-keygen -m PEM -t rsa -b 4096 -C "email@..."
Alireza Alallah
sumber
0

Saat menambahkan URL jarak jauh ubahlah dari ini

https://[email protected]/usernameowner/project-name.git

untuk ini

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

Marlon
sumber
0

Saya mengubah jalur git dan berhasil.

masukkan deskripsi gambar di sini

Smart Coder
sumber
-1

Pastikan Anda telah mengubah tautan ke repositori git ke HTTPSopsi setelah Anda memilih "Asli" dalam pengaturan IntelliJ jika SSHtidak berfungsi.

SilverK
sumber