git: fatal: Uzak depodan okunamadı


358

Sitemi yönetmek için http://danielmiessler.com/study/git/#website ile git ayarlamaya çalışıyorum .

Talimatlarda son adıma geçtim: git push website + master: refs / heads / master

Win7 git ming32 komut satırı kullanarak çalışıyorum

$ 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.

Buradaki sorunlardan biri, programın Bill@***.com'u araması olabilir. ssh aracılığıyla siteme bağlandığımda farklı bir kullanıcı adım var (hadi 'abc' diyelim). bu yüzden belki bu abc@***.com olmalıdır. Eğer öyleyse bunu nasıl değiştireceğimi bilmiyorum ya da bir takma adın altına itebilir miyim


1
Aynı sorunu yaşadım, bazen git sunucusuna ulaşılamadığında veya "dahili sunucu hatası" gibi bir şey olduğunda bu hata oluşur.
Morteza Ziyae

2
Öncelikle lütfen .git/configdosyaya bakın ve her şeyin yolunda olduğunu görün. Benim için yanlış set-url ve orijin değerleri vardı.
mixdev



Bana doğru .git / config sırasını ve ayrıca .ssh / config ... coz gösterebilir miyim abit zor karışık.
Gumuruh

Yanıtlar:


134

SSH'nin uzaktan sisteme göndereceği kullanıcı adını uzaktan kumandanızın URL'sinin bir parçası olarak belirtebilirsiniz. Kullanıcı adını ve ardından @anasistemi uzak ana bilgisayar adının önüne koyun .

git remote set-url website abc@***.com:path/to/repo

3
ps, ben yazmak zorunda kalmıyorum böylece şifre eklemek için bir yolu var mı?
LDN

15
.git/configuzak url parametresine sahip dosyayı düzenle
Sayanee

@ user61629: Partiye geç kaldığımı biliyorum, ancak şifreler yerine özel / genel anahtar çiftlerini kullanmayı düşünmelisiniz.
code_dredd

Hangi kullanıcı adı? Bilgisayar kullanıcı adı veya github kullanıcı adı?
Ajan Zebra

11
Github için her zaman kullanıcı adını kullanırsınız git. Örnek: git@github.com:mayoff/uiimage-from-animated-gif.gitGithub, gönderdiğiniz SSH anahtarına bakarak kimliğinizi bulur.
rob mayoff

191

Ssh anahtarınız büyük olasılıkla ssh aracısından kaldırılmıştı

ssh-add ~/.ssh/id_rsa

burada id_rsa git repo ile ilişkili bir ssh anahtarıdır


7
Bu benim için çalıştı! ~ / .Ssh / config dosyamı farklı ana bilgisayarlar için farklı anahtarlar kullanacak şekilde yapılandırmaya çalışırken uzun zaman geçirdim, bu dosyanın sorun olduğunu düşündüm. Sonunda, doğru ana bilgisayar için doğru anahtarı kullanıyor olmalı, ancak bu anahtar "kaldırılmış". Bu yüzden ssh-add ~/.ssh/theKeyInQuestionbeni geri ve bu repo ile çalışan var, bilmiyordum anahtar kaldırıldı, ya da ne "kaldırıldı" anlamına gelir ama en azından tekrar kimlik doğrulaması başardı. SSH, aylarca kimlik doğrulama sorunları ile uğraştıktan sonra bile benim için tam bir gizem. ssh ajan sorunları farkında olmak için bir şey daha var!
Alex Bollbach

Çok teşekkürler .. Bu sonunda GitLab hesabıma SSH anahtarları oluşturmak, silmek, vb çalıştıktan sonra benim için çalıştı .... Teşekkürler !!
Bms bharadwaj

Bu benim sorunumu çözdü. Zaten sunucuda yeni oluşturulan ssh anahtarı ekledim. Bu anahtarın eklenmesi gerekiyor !!
Kashan

1
Bu benim için çözdü, neden anlamıyorum .. Eskiden işe yaradı ve aniden değil, anahtarı ajandan kaldıran bir süreç var mı, kaza olabilir mi?
Miguel Stevens

1
Ben alıyorum Could not open a connection to your authentication agent..
Dan Dascalescu

130

URL'nizin doğru olduğundan emin olun .git/config

url = git@github.com:username/repo.git

İlk itişinizse, doğru yukarı akış ayarlamanız gerekir

$ git push -u origin master

Hangi anahtarın kullanıldığını kontrol edebilirsiniz:

$ ssh -vvv git@github.com

Cevap şu şekilde olmalıdır:

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

Ayrıca, ssh için kurallar tanımlamak da mümkündür ~/.ssh/config, örn. Takma adlara dayalı olarak:

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

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

Farklı bağlantı noktalarına bağlanmayı ayarlayabilir, her takma ad için farklı kullanıcı adı vb. Kullanabilirsiniz.


1
Teşekkür ederim!! Repoyu klonladığım bir noktada, (olmadan ) urlolarak ayarlandı ve bu yüzden SSH anahtarımı kullanmayı reddetti. Belki de başlangıçta Windows için GIthub kullanarak klonladım (?)https://github.com/user/repo.gitgit@github.com
Jedidja

Ben değişime yaşadım url = ssh://github.com/RaphaelBossek/dev-atlassian-jira-proman.gitiçin url = ssh://git@github.com/RaphaelBossek/dev-atlassian-jira-proman.gitve tekrar çalıştı
Raphael BOSSEK

Damnit, harikasın. Başka birçok çözüm denedim.
Url'm

-vvvİpucu benim için yararlı oldu. Şimdi "Bağlantı XXX.XXX.XXX.X bağlantı noktası 22 tarafından kapatıldı" dediğini görüyorum.
Ryan

Ahhh, DeployHQ "BitBucket şu anda küçük servis sorunları yaşıyor. Daha fazla bilgi için lütfen durum sayfalarını kontrol edin. Status.bitbucket.org " Bingo.
Ryan

123

Bir süre önce aynı sorunla karşı karşıyaydım ...

.git / config'im vardı

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

İle değiştirdim

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

ve şimdi çalışıyor :)


8
bu nasıl daha üst sıralarda yer almıyor? git @ github tamamen benim için çalışmıyor
hlitz

3
Repo sahibi sshanahtarları ayarlamadıysa , büyük olasılıkla bu sorunla karşılaşırsınız. Belirtilen düzeltme httpsbunun yerine kullanmak veya repo sahibini ssh
kurdurmaktır

@smileham bu, ssh tabanlı bir yetkilendirmeden repo ile uzak bağlantıyı bir https protokolüne
geçirir (

doğru cevap bu, anında benim için çalıştı.
Kingston Fortune

Got herkes için git remote set-url ...bana (!) Gibi bana VEYA kim aptalca adlarıyla birlikte Big Vaka Alfabe sahiptir (örn Pedro) gibi yanlış bu izlemelidir. Çalıştı :)
Pe Dro

23

GIT_SSH ortam değişkenini ile kaldırmayı deneyin unset GIT_SSH. Sorunumun nedeni buydu.


1
Çalışıyor .. GIT_SSH ortam değişkenini nereden bulduğumu merak ediyorum :)
StrangeLoop

1
Windows için gelişmiş seçenekler menüsünden GIT_SSH ortam değişkenini kaldırın. Benim için çalıştı.
splintercell

Nasıl? Bunu yapmak için terminalde ne yazıyorum?
Ajan Zebra

17

Terminalinizde aşağıdaki komutu yürüterek ssh-agent'ın çalıştığından emin olun:

eval $(ssh-agent -s)

Kaynak: Github belgeleri


Bu benim için de bir sorunu çözüyor. Teşekkürler
Ahmad

Bu benim için de düzeltildi. Gelecekte çalıştığından emin olmak için yapmam gereken bir şey var mı? Dosyama bir girdi olarak koymak gibi .zshrc?
Brady Dowling

14

Bu genellikle SSH anahtarının uzaktan kumanda ile eşleşmemesinden kaynaklanır.

Çözümler:

  1. Terminale gidin ve e-posta kimliğinizle değiştirmek için aşağıdaki komutu (Mac, Linux) yazın.

    ssh-keygen -t rsa -C "you@email.com"

  2. Üretilen anahtarı ssh kelimesinden başlayarak aşağıdaki komutu kullanarak kopyalayın.

    cat ~ / .ssh / id_rsa.pub

  3. Uzaktan kumandanıza ait github, bitbucket veya gitlab içine yapıştırın.
  4. Onu kurtar.

9

Ben de aynı problemi yaşadım.

Bu hata, kodunuzun aktarılacağı uzak URL konumunuzu belirtmediğiniz anlamına gelir.

Uzak URL'yi 2 (esas olarak) şekilde ayarlayabilirsiniz:

  1. Git Bash üzerinde komut yürüterek uzak URL'yi belirtin.

    • Proje dizininize gidin

    • Git Bash'i aç

    • Komutu çalıştır:

      • git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>
  2. Yapılandırma dosyasındaki uzak URL'den doğrudan bahsedin

    • Proje dizininize gidin

    • Taşı .git klasörüne

    • Yapılandırmayı metin editörü dosya

    • Satırların altına kopyalayıp yapıştırın

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

Daha ayrıntılı bilgi için bu bağlantıyı ziyaret edin .



7

Aynı hatayla karşılaştım. Çözüm şuydu: URL'mi düzelttim .git/config. Bunu HTTPS klon URL'sinden kopyaladım. Bu böyle bir şey olurdu:

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

İşe yaradı.


bunu windows os altında benim yapılandırma dosyasına yazdıysanız, hata farklı ortaya çıktı, dedi ki ... "/c/Users/asus/.ssh/config: line 5: Kötü yapılandırma seçeneği: url"
gumuruh

ssh üzerinde https kullanmak işe yarıyor, kullanıcı adı ve şifre istiyor
Kiran

4

Başka bir geçici çözüm:

Bazen bu ağ sorunları nedeniyle başıma geliyor. Kök problemini tam olarak anlamıyorum, ancak farklı bir alt ağa geçmek veya VPN kullanmak sorunu çözüyor


Kesinlikle benim durumum. Ben bu yorumu okumak isterdim. Birkaç saat hata ayıklamadan sonra, VPN kullanmayı düşündüm ve işe yaradı.
Chaitanya Bapat

4

Gitlab'ı kullanırsanız, çekmeye veya itmeye çalışmadan önce giriş yapmanız ve Gitlab'ın yeni terimlerini kabul etmeniz gerekebilir.


Neden inişli çıkışlı? Aynı gün sorunumu çözdüm, yeni gitlab terimleriyle ilgisi vardı.
Marcelo Agimóvel

Lütfen downvote'unuzu kaldırın. Bu geçerli bir cevap, gitlab terimleri değiştikten sonra oldu. Gitlab yeni terimleri kabul etmek sorunu çözebilir.
Marcelo Agimóvel

3

.Git / config dosyanızda

[remote "YOUR_APP_NAME"]
    url = git@heroku.com:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

Ve basitçe

git push YOUR_APP_NAME master:master 

3

Benim durumumda github ile kimlik doğrulaması için bir ssh anahtarı kullanıyordum. Windows'da pageant ayarlamamıştım (sadece cygwin'de). Eksik adımlar git_ssh ortam değişkenini plink.exe'ye yönlendirmekti. Ayrıca, github.com'u bilinen_hosts plinkine almanız gerekir.

   plink github.com
   y
   <then ctrl-c>

Bu yardımcı olur umarım!

Kesinlikle intellij bana daha yararlı bir hata vermiş olsaydı, ya da daha iyisi ssh anahtar şifresini yazmamı isterdi.


3

Ben ssh ajan doğru olanı ile birlikte Bitbucket için yanlış bir ssh özel anahtar vardı.

Önce tüm anahtarlar silindi

ssh-add -D

Sonra sadece sağ anahtarı ekledi.

ssh-add ~/.ssh/id_rsa

2

Benim durumum için, ofiste Kurumsal ağ (internet bağlantısı olmadan) kullanıyorum. Github'dan kod çekmek için gitbash'ta https proxy'yi ayarladım ve sonra kodu çekmek için ssh yerine https kullanıyorum, iyi çalışıyor. Ancak itme kodu söz konusu olduğunda, https proxy çalışmaz. Yani ya internet ağına (internet bağlantısı ile) geçin ya da ssh proxy'yi ayarlayarak sorunu çözebilirsiniz.


2

Aslında Win7 üzerinde çalışmasını sağlamak için bir çok şey denedim, çünkü SSH exectun fron'u yerel olarak inşa etmek ve geriye doğru değiştirmek ve aynı hatayı. Şans eseri, ".git / config" dosyasında HTTPS olarak değiştiririm:

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

ve sonunda işe yaradı. Belki sizin için de işe yarayabilir.


2

Aynı sorunu yaşadım ve bir süre sonra kök kullanıcı (sudo -s ile) altında olduğumu gördüm. Bu birisi için yardımcı olsun.


Makinenizde ve BitBucket'te ssh anahtarı ayarlasanız bile, 'git' komutunu bir 'sudo' komutuyla çalıştırmayı denediğinizde bu hatayı görüntüleyeceğini onaylıyorum.
ElectroBuddha

2

"Git push origin master" komutundan sonra u "uzak depodan okunamadı" hatasını görürseniz, bunu deneyin

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 


1

Aynı hatayla karşılaştım, bu da bana bu yanıta yardımcı olmadı. Bir NTFS konumuna izlemek için aşağıdaki komutları kullanarak ilk kez yeni bir "çıplak" depo oluşturmaya çalışıyordum:

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

Benim sorunum (yeni) izlenen yukarı akış dalı ayarlamak için kaynak eklemek çalışırken NTFS konumu ileri eğik çizgiler yerine ters eğik çizgiler kullanmak olduğu ortaya çıktı.

Ben kullanarak kökeni kaldırmak zorunda kaldı:

git remote rm origin

Ardından beklenen eğik çizgileri kullanarak menşei tekrar ekleyin

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

Umarım bu gelecekte birine yardımcı olur.


1

Bilgisayarları değiştirdikten sonra bu hatayı aldım. SourceTree ile Bitbucket kullanıyorum.

Bu yüzden, yeni bilgisayarda SourceTree tarafından oluşturulan SSH anahtarını, Bitbucket Ayarları> Güvenlik> SSH anahtarlarına, web'deki Bitbucket hesabıma bağlıyken eklemek zorunda kaldım.


1

Terminali yeniden başlatarak bu sorunu çözdüm (yeni bir pencere / sekme aç).

Eğer altta yatan problemi gerçekten anlamak istemiyorsanız / anlamanız gerekmiyorsa, daha derin kazmadan önce test yöntemi denemeye değer :)


0

Özel bir uzak depoda bu sorunu olanlar için. uzak sunucuda Xcode sözleşmesini kabul ettiğinizden emin olun: bu düzeltmeyi bulmak haftalar sürdü

Bu komutu komut satırından kullanın: sudo xcodebuild -license


0

Ben sadece bunun için kolay bir düzeltme bulduğunu paylaşmak istedim:

Erişim reddedildi. ölümcül: Uzak depodan okunamadı. Lütfen doğru erişim haklarına sahip olduğunuzdan ve havuzun var olduğundan emin olun.

sadece gitlab'dan çıkış yapın ve tekrar giriş yapın. Sorunlar daha sonra giderilmelidir.


0

Macun / pageant kullanırken, pageant'a doğru SSH anahtarını eklemeyi unutmadığınızdan emin olun, aksi takdirde bu hata görünür. YAA



0

MINGW32 terminaline şu komutu verin: git branch --set-upstream-to = origin / (branch Name)


0

Hala aynı hatayı alıyorsanız , lütfen git settings-> ssh tab-> ssh istemcisinde openSSH olarak ayarlandığından emin olun.resim açıklamasını buraya girin


0

Tecrübelerime göre, nedenlerinden biri bu sorunu oluştu bir var çünkü kararsız internet bağlantısı .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.