git: fatal: Tidak bisa membaca dari repositori jarak jauh

356

Saya mencoba mengatur git dengan http://danielmiessler.com/study/git/#website untuk mengelola situs saya.

Saya telah sampai pada langkah terakhir dalam instruksi: git push website + master: refs / heads / master

Saya bekerja menggunakan baris perintah git ming32 di win7

$ git push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Salah satu masalah di sini mungkin adalah program sedang mencari Bill@***.com. ketika saya terhubung melalui ssh ke situs saya, saya memiliki nama pengguna yang berbeda (katakanlah 'abc'). jadi mungkin ini seharusnya abc@***.com. Jika demikian, saya tidak tahu bagaimana cara mengubah ini atau jika saya bisa menekan di bawah alias

LDN
sumber
1
Saya memiliki masalah yang sama, terkadang kesalahan ini terjadi ketika server git tidak dapat dijangkau atau memiliki sesuatu seperti "kesalahan server internal".
Morteza Ziyae
2
Pertama tolong lihat .git/configfile dan lihat semuanya beres. Itu salah set-url dan nilai asal untuk saya.
mixdev
Mungkin ini akan menyelesaikan masalah: help.github.com/articles/connecting-to-github-with-ssh
Guy Avraham
Masalah terkait: stackoverflow.com/questions/10127818/…
Anton Tarasenko
dapatkah Anda menunjukkan kepada saya urutan yang benar dari .git / config dan juga .ssh / config ... karena saya bingung abit sulit.
gumuruh

Jawaban:

134

Anda dapat menentukan nama pengguna yang harus dikirim SSH ke sistem jarak jauh sebagai bagian dari URL jarak jauh Anda. Masukkan nama pengguna, diikuti oleh @, sebelum nama host jarak jauh.

git remote set-url website abc@***.com:path/to/repo
rob mayoff
sumber
3
ps, apakah ada cara untuk menambahkan kata sandi sehingga saya tidak harus mengetiknya?
LDN
15
edit file .git/configyang memiliki parameter url jarak jauh
Sayanee
@ user61629: Saya tahu saya terlambat ke pesta, tetapi Anda harus mempertimbangkan untuk menggunakan pasangan kunci pribadi / publik alih-alih kata sandi.
code_dredd
Nama pengguna yang mana? Nama pengguna komputer atau nama pengguna github?
Agen Zebra
11
Untuk Github, Anda selalu menggunakan nama pengguna git. Contoh: [email protected]:mayoff/uiimage-from-animated-gif.gitGithub mengetahui identitas Anda dengan melihat kunci SSH apa yang Anda kirim.
rob mayoff
190

Kunci ssh Anda kemungkinan besar telah dihapus dari ssh agent

ssh-add ~/.ssh/id_rsa

di mana id_rsa adalah kunci ssh yang terkait dengan git repo

Johnny Cage
sumber
7
Ini berhasil untuk saya! Saya menghabiskan waktu lama mencoba mengkonfigurasi file ~ / .ssh / config saya untuk menggunakan kunci yang berbeda untuk host yang berbeda, berpikir bahwa file ini adalah masalahnya. Pada akhirnya, itu pasti menggunakan kunci yang tepat untuk host yang tepat, tetapi kunci itu telah "dihapus". jadi ssh-add ~/.ssh/theKeyInQuestionbuat saya kembali dan berjalan dengan repo ini, tidak tahu kunci dihapus, atau apa artinya "dihapus" tetapi setidaknya saya bisa mendapatkan otentikasi lagi. SSH adalah misteri total bagi saya bahkan setelah berbulan-bulan berurusan dengan masalah otentikasi. masalah ssh agent adalah satu hal lagi yang harus diperhatikan!
Alex Bollbach
Terima kasih banyak .. Ini akhirnya bekerja untuk saya setelah mencoba membuat, menghapus, dll kunci SSH ke akun GitLab saya .... Terima kasih !!
Bms bharadwaj
Ini menyelesaikan masalah saya. Saya sudah memiliki kunci ssh yang baru dibuat yang ditambahkan di server. Kunci ini perlu ditambahkan !!
Kashan
1
Ini menyelesaikannya untuk saya, saya tidak mengerti mengapa .. Dulu bekerja dan tiba-tiba tidak, apakah ada proses yang menghilangkan kunci dari agen, dapatkah itu terjadi secara kebetulan?
Miguel Stevens
Mengapa itu terjadi? Itu bekerja sepanjang hari tetapi pada malam hari ia berhenti bekerja. Jawaban ini membantu.
Andrey Semakin
130

Pastikan Anda memiliki url yang benar .git/config

url = [email protected]:username/repo.git

Jika ini adalah dorongan pertama Anda, Anda harus mengatur upstream yang benar

$ git push -u origin master

Anda dapat memeriksa kunci mana yang digunakan oleh:

$ ssh -vvv [email protected]

Balasan harus berisi sesuatu seperti ini:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
...
You've successfully authenticated, but GitHub does not provide shell access.

Juga dimungkinkan untuk mendefinisikan aturan untuk ssh in ~/.ssh/config, misalnya berdasarkan alias:

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

   Host git
      HostName github.com 
      User git
      IdentityFile "~/.ssh/some_other_id"

Anda dapat mengatur koneksi ke port yang berbeda, menggunakan nama pengguna yang berbeda dll untuk setiap alias.

Tombart
sumber
1
Terima kasih!! Pada suatu saat ketika saya mengkloning repo saya, urlitu diatur ke https://github.com/user/repo.git(tanpa [email protected]) dan menolak untuk menggunakan kunci SSH saya. Mungkin itu karena saya mengkloningnya menggunakan GIthub untuk Windows awalnya (?)
Jedidja
Saya harus beralih url = ssh://github.com/RaphaelBossek/dev-atlassian-jira-proman.gitke url = ssh://[email protected]/RaphaelBossek/dev-atlassian-jira-proman.gitdan berhasil lagi
Raphael Bossek
Sial, kau luar biasa. Saya mencoba banyak solusi lain. Url saya adalah https: juga :(
agrublev
The -vvvpetunjuk membantu bagi saya. Sekarang saya melihat bahwa itu mengatakan "Koneksi ditutup oleh XXX.XXX.XXX.X port 22".
Ryan
Ahhh, DeployHQ mengatakan, "BitBucket saat ini mengalami masalah layanan minor. Silakan periksa halaman status mereka untuk informasi lebih lanjut. Status.bitbucket.org " Bingo.
Ryan
123

Saya menghadapi masalah yang sama beberapa waktu lalu ...

git / config saya miliki

url = [email protected]:manishnakar/polymer-demo.git

Saya menggantinya dengan

url = https://github.com/manishnakar/polymer-demo.git 

dan itu bekerja sekarang :)

Manish Nakar
sumber
8
bagaimana ini tidak peringkat lebih tinggi? git @ github sama sekali tidak bekerja untuk saya
hlitz
3
Jika pemilik repo belum menyiapkan sshkunci maka Anda kemungkinan akan mengalami masalah ini. Perbaikan seperti yang ditunjukkan adalah httpssebagai gantinya digunakan , atau minta pemilik repo menyiapkanssh
RyanNerd
@smileham ini mengalihkan tautan jauh dengan repo dari auth berbasis ssh ke protokol https (ini akan meminta usr / pwd jika diperlukan)
Vincent Chalmel
ini jawaban yang benar, itu langsung berfungsi untuk saya.
Kingston Fortune
Bagi siapa pun yang git remote set-url ...salah seperti saya ATAU yang bodoh memiliki Huruf Besar Huruf di nama pengguna mereka (misalnya PeDro) seperti saya (!) Harus mengikuti ini. Berhasil :)
Pe Dro
23

Coba hapus variabel lingkungan GIT_SSH dengan unset GIT_SSH. Ini adalah penyebab masalah saya.

Scott Lindner
sumber
1
Bekerja .. Saya ingin tahu dari mana saya mendapat variabel lingkungan GIT_SSH dari :)
StrangeLoop
1
Untuk windows, hapus variabel lingkungan GIT_SSH dari menu opsi lanjutan. Bekerja untukku.
splintercell
Bagaimana? Apa yang harus saya tulis di terminal untuk melakukan itu?
Agen Zebra
17

Pastikan ssh-agent berjalan dengan menjalankan perintah berikut di terminal Anda:

eval $(ssh-agent -s)

Sumber: Dokumentasi Github

pengguna3362907
sumber
Ini memperbaiki masalah bagi saya juga. Terima kasih
Ahmad
Ini memperbaikinya bagi saya juga. Apakah ada sesuatu yang harus saya lakukan untuk memastikan itu berjalan di masa depan? Suka memasukkannya sebagai entri di .zshrcfile saya ?
Brady Dowling
14

Ini biasanya disebabkan karena kunci SSH tidak cocok dengan remote.

Solusi:

  1. Pergi ke terminal dan ketik perintah berikut (Mac, Linux) ganti dengan id email Anda.

    ssh-keygen -t rsa -C "[email protected]"

  2. Salin kunci yang dihasilkan menggunakan perintah berikut mulai dari kata ssh.

    cat ~ / .ssh / id_rsa.pub

  3. Rekatkan di github, bitbucket atau gitlab masing-masing dari remote Anda.
  4. Simpan itu.
Bastin Robin
sumber
9

Saya memiliki masalah yang sama.

Kesalahan ini berarti bahwa Anda belum menentukan lokasi URL jauh Anda tempat kode Anda akan ditekan.

Anda dapat mengatur URL jarak jauh dengan 2 (terutama) cara:

  1. Tentukan URL jarak jauh melalui mengeksekusi perintah di Git Bash.

    • Arahkan ke direktori proyek Anda

    • Buka Git Bash

    • Jalankan perintah:

      • git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>
  2. Sebutkan URL jarak jauh langsung dalam file konfigurasi

    • Arahkan ke direktori proyek Anda

    • Pindah ke folder .git

    • Buka file config di editor teks

    • Salin dan tempel di bawah garis

      • [remote "origin"] url = https://abc.xyz/USERNAME/REPOSITORY.git fetch = +refs/heads/*:refs/remotes/origin/*

Untuk info lebih rinci kunjungi tautan ini .

Pratik Patel
sumber
8

Setelah melakukan riset, akhirnya saya mendapatkan solusi untuk ini, Anda telah mendeklarasikan variabel lingkungan ke jalur plink.exe. Jadi jika Anda menghapus jalur itu, buka kembali git bash dan coba kloning melalui SSH itu akan berhasil.

Lihat tautan ini

http://sourceforge.net/p/forge/site-support/2959/#204c

Mohammed Nasiruddin
sumber
7

Saya memiliki kesalahan yang sama. Solusinya adalah sebagai berikut: Saya telah memperbaiki url saya .git/config. Baru saja menyalinnya dari URL klon HTTPS. Itu akan menjadi sesuatu seperti itu:

url = https://github.com/*your*git*name*/*your*git*app*.git

Itu berhasil.

tan75
sumber
jika saya menulis ini di file konfigurasi saya di bawah os windows, kesalahan muncul secara berbeda, katanya ... "/c/Users/asus/.ssh/config: baris 5: Opsi konfigurasi yang buruk: url"
gumuruh
menggunakan https lebih dari ssh berfungsi dengan baik, ia meminta nama pengguna dan kata sandi
Kiran
4

Solusi lain:

Terkadang ini terjadi pada saya karena masalah jaringan. Saya tidak mengerti masalah root sepenuhnya, tetapi beralih ke sub-jaringan yang berbeda atau menggunakan VPN menyelesaikannya

kip2
sumber
Kasus saya persis. Seandainya saya telah membaca komentar ini. Setelah beberapa jam melakukan debug, pikirkan untuk menggunakan VPN dan itu berhasil.
Chaitanya Bapat
4

Jika Anda menggunakan Gitlab daripada Anda mungkin perlu masuk dan menerima persyaratan baru Gitlab, sebelum Anda mencoba menarik atau mendorong.

Marcelo Agimóvel
sumber
Mengapa downvote? Pada hari yang sama saya memecahkan masalah saya, itu ada hubungannya dengan istilah gitlab baru.
Marcelo Agimóvel
Harap hapus downvote Anda. Ini adalah jawaban yang valid, itu akan terjadi setelah perubahan istilah gitlab. Menerima gitlab istilah baru mungkin bisa menyelesaikan masalah.
Marcelo Agimóvel
3

Dalam file .git / config Anda

[remote "YOUR_APP_NAME"]
    url = [email protected]:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

Dan sederhana saja

git push YOUR_APP_NAME master:master 
pengguna1982195
sumber
3

Dalam kasus saya, saya menggunakan kunci ssh dengan kata sandi untuk mengautentikasi dengan github. Saya belum mengatur kontes dengan benar di Windows (hanya di cygwin). Langkah-langkah yang hilang adalah mengarahkan variabel lingkungan git_ssh ke plink.exe. Juga, Anda perlu memasukkan github.com ke plink known_hosts.

   plink github.com
   y
   <then ctrl-c>

Semoga ini membantu!

Saya yakin berharap Intellij akan memberi saya kesalahan yang lebih berguna, atau lebih baik meminta saya untuk mengetikkan kata sandi kunci ssh.

Jeff Hoye
sumber
3

Saya memiliki kunci pribadi ssh yang salah untuk Bitbucket bersama dengan yang tepat di agen ssh.

Menghapus semua tombol terlebih dahulu

ssh-add -D

Kemudian ditambahkan kunci yang tepat.

ssh-add ~/.ssh/id_rsa
Selamanya
sumber
2

Untuk kasus saya, saya menggunakan jaringan Korporat (tanpa koneksi internet) di kantor. Untuk menarik kode dari github, saya mengatur https proxy di gitbash dan kemudian menggunakan https alih-alih ssh untuk menarik kode, itu berfungsi dengan baik. Namun ketika datang ke kode push, proksi https tidak akan berfungsi. Jadi baik beralih ke jaringan internet (dengan koneksi internet) atau mengatur ssh proxy dapat menyelesaikan masalah.

Wen
sumber
2

Sebenarnya saya mencoba banyak hal untuk membuatnya berfungsi pada Win7, karena mengubah SSH exectun fron asli menjadi build-it dan mundur dan kesalahan yang sama. Secara kebetulan, saya mengubahnya ke HTTPS dalam file ".git / config" sebagai:

[remote "origin"]
        url = https://github.com/user_name/repository_name.git
        fetch = +refs/heads/*:refs/remotes/origin/*

dan akhirnya berhasil. Jadi mungkin itu bisa bekerja untuk Anda juga.

Ignacio lucatero
sumber
2

Saya memiliki masalah yang sama dan setelah beberapa saat saya melihat saya di bawah pengguna root (dengan sudo -s). Semoga ini membantu seseorang.

Jean-Luc Barat
sumber
Saya mengonfirmasi bahwa bahkan ketika Anda telah mengatur kunci ssh pada mesin Anda dan pada BitBucket, ia masih akan menampilkan kesalahan ini jika Anda mencoba menjalankan 'git pull' dengan perintah 'sudo'.
ElectroBuddha
2

Jika setelah "git push origin master" perintah Anda melihat kesalahan "tidak dapat membaca dari repositori jauh" kemudian coba ini

1.ssh-keygen -t rsa -b 4096 -C "youremail"
2.eval $(ssh-agent -s)
3.ssh-add ~/.ssh/id_rsa
4.clip < ~/.ssh/id_rsa.pub(it copies the ssh key that has got generated)
5.then go to your remote repository on github and goto settings-> SSH and GPG keys ->new SSH key ->enter any title and paste the copied SSH key and save it
6. now give git push origin master 
sushmitha
sumber
2

Saya memiliki git yang berfungsi dengan baik dan tiba-tiba saya mendapatkan kesalahan itu ketika saya mencoba untuk mendorong ke master. Seperti yang saya ketahui, itu karena host repositori mempunyai masalah.

Jika Anda menggunakan GitHub atau Bitbucket, Anda dapat dengan mudah memeriksa status di

https://status.github.com/messages atau https://status.bitbucket.org/

masukkan deskripsi gambar di sini

Adam
sumber
1

Saya memiliki kesalahan yang sama, yang membawa saya ke jawaban ini yang tidak membantu saya. Saya mencoba membuat repositori "telanjang" baru untuk pertama kalinya menggunakan perintah di bawah ini untuk melacak ke lokasi NTFS:

cd myrepository
git init --bare \\myserver.mycompany.local\myrepository.git
git init
git status
git add .
git status
git commit -m "Initial Commit"
git remote add origin \\myserver.mycompany.local\myrepository.git
git push -u origin master
git status

Masalah saya ternyata menggunakan garis miring bukan garis miring di lokasi NTFS ketika mencoba menambahkan asal untuk mengatur cabang upstream (baru) yang dilacak.

Saya harus menghapus sumber menggunakan:

git remote rm origin

Kemudian tambahkan asal lagi menggunakan garis miring yang diharapkan

git remote add origin //myserver.mycompany.local/myrepository.git

Semoga ini bisa membantu seseorang di masa depan.

Mike
sumber
1

Saya mendapatkan kesalahan ini setelah mengganti komputer. Saya menggunakan SourceTree dengan Bitbucket.

Jadi saya harus menambahkan kunci SSH yang dihasilkan oleh SourceTree, di komputer baru, di Pengaturan Bitbucket> Keamanan> kunci SSH, saat terhubung ke akun Bitbucket saya di web.

eby
sumber
1

Saya memecahkan masalah ini dengan me-restart terminal (buka jendela / tab baru).

Jadi, jika Anda tidak benar-benar ingin / perlu memahami masalah yang mendasarinya, metode pengujian patut dicoba sebelum menggali lebih dalam :)

Mraxus
sumber
0

Bagi mereka yang mengalami masalah ini pada repo jarak jauh pribadi. pastikan Anda telah menerima perjanjian Xcode pada server jauh: kami butuh berminggu-minggu untuk mengetahui perbaikan ini

Gunakan perintah ini dari baris perintah: sudo xcodebuild -license

Joseph Bolade Caxton-Idowu
sumber
0

saya hanya ingin membagikan bahwa saya menemukan perbaikan yang mudah untuk itu:

Akses ditolak. fatal: Tidak bisa membaca dari repositori jarak jauh. Pastikan Anda memiliki hak akses yang benar dan repositori ada.

cukup keluar dari gitlab dan masuk kembali. Masalahnya kemudian harus diperbaiki.

nechama b
sumber
0

Saat menggunakan dempul / kontes, pastikan Anda tidak lupa untuk menambahkan kunci SSH yang benar ke kontes, jika tidak kesalahan ini muncul. DUH

kombinasi
sumber
0

Pergi ke terminal MINGW32 masukkan perintah ini: git branch --set-upstream-to = origin / (branch name)

Juned Ahmed
sumber
0

Jika Anda masih mendapatkan kesalahan yang sama, pastikan bahwa di pengaturan git- > ssh tab-> ssh client yang akan digunakan diatur ke openSSHmasukkan deskripsi gambar di sini

Anil Kumar B
sumber
0

Menurut pengalaman saya, salah satu alasan masalah ini terjadi adalah karena Anda memiliki koneksi internet yang tidak stabil .

Marwan Salim
sumber