Git-push master'ı Github'a gönderemiyor - 'kaynak' bir git deposu olarak görünmüyor / izin reddedildi


84

Bu soru, yeniden ödeme, dallanma ve birleştirme konusundaki sorunum ve sorunla ilgilidir.

Uzak listenizde bir takım arkadaşınız varken github hesabınıza nasıl bağlanabilirsiniz?

Başkalarının da aynı sorunu yaşadığını öğrendim . Sorun /etc/xinet.d/ ile ilgili gibi görünüyor.

Sorun: yerel şubemi Github'daki ana şubeme gönderemiyorum

koşarım

git push origin master

alırım

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Hata mesajı bana 'köken'in yerel git depomda olmadığını gösteriyor. Bu şekilde Git, Github'a bağlanmayı durdurur.

Bu tuhaf, çünkü şubenin 'kökenini' kaldırmadım.

Benim git ağacım

  dev
* master
  ticgit
  remotes/Math/Math
  remotes/Math/master
  remotes/origin/master
  remotes/Masi/master

Yerel Git'inizde bir teamMate şubeniz varken, yerel şubenizi Github'a nasıl aktarabilirsiniz ?


VonC'nin cevabı ana sorunu çözer. Ssh anahtarlarıma bir parola koydum.

koşarım

$git push github master     

alırım

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Görünüşe göre Git'in parolasını bir şekilde vermem gerekiyor.

Github'ın ssh anahtarına güvenmek yerine parolanızı istemesini nasıl sağlayabilirsiniz?


Cevabımı güncelledim. Ssh parametreleri hepsi değil. user.name ve github.user da önemlidir
VonC

Bazı ssh yapılandırma kontrolleriyle
yanıtımı

"İzin reddedildi (publickey)." aslında sizin publickey kullanarak oturum açmaya çalıştığınız ve publickey'e erişiminize izin verilmemesi yerine izninizin reddedildiği anlamına gelir.
Xiong Chiamiov

Benim sorunum, farklı bir sistemden farklı bir ssh anahtarıydı. Diğer anahtarı yükledim ve her şey yolundaydı. Ssh -v git@github.com hilesiyle buldum.
nalply

Yanıtlar:


96

Nedir

$ git config --get-regexp '^(remote|branch)\.'

döner (git deponuzda yürütülür)?

Origin, uzak bir Git deposuna atıfta bulunmak için yalnızca varsayılan bir adlandırma kuralıdır.

GitHub'a atıfta bulunmuyorsa (bunun yerine takım arkadaşı deponuza giden bir yol, artık geçerli veya mevcut olmayan bir yol), bu Bloggitation girdisinde olduğu gibi başka bir kaynak ekleyin.

$ git remote add origin2 git@github.com:myLogin/myProject.git
$ git push origin2 master

(Aslında "origin" veya "origin2" yerine "github" adını kullanırdım)


İzin reddedildi (publickey).
ölümcül: Uzak uç beklenmedik bir şekilde kapattı

GitHub Yardım kılavuzunda belirtildiği gibi gitHub kimliğinizin yerel Git deponuzda doğru bir şekilde beyan edilip edilmediğini kontrol edin . (hem kullanıcı.adı hem de github.name - ve github.token)

Sonra, stonean blog öneriyor ( Marcio Garcia'nın yaptığı gibi ):

$ cd ~/.ssh
$ ssh-add id_rsa

Aral Balkan ekliyor: Bir yapılandırma dosyası oluşturun

Çözüm, bu sayfanın OS X bölümünün altında belirtildiği gibi ~ / .ssh / altında bir yapılandırma dosyası oluşturmaktı .

İşte sayfadaki talimatlara göre eklediğim dosya ve göndermelerim tekrar çalışmaya başladı:

Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes

Ayrıca sonucunu da gönderebilirsiniz

ssh -v git@github.com

GitHub ssh bağlantısının sizi neden reddettiği konusunda daha fazla bilgi sahibi olmak için.

Ayrıca genel anahtarınızı doğru girip girmediğinizi de kontrol edin (' ==' ile bitmesi gerekir ).
Özel anahtarınızı değil, genel anahtarınızı yapıştırın. Bir genel anahtar şunun gibi görünür:

ssh-rsa AAAAB3<big string here>== tek...@gmail.com 

(Not: ssh anahtarlarınız için bir parola mı kullandınız? Parola olmadan daha kolay olurdu)

İtilirken kullanılan url'yi de kontrol edin ( git@github.com/...değil git://github.com/...)

Anahtarınızı kullanmak ve önbelleğe almak için bir SSH Aracınız olup olmadığını kontrol edin.

Bunu dene:

 $ ssh -i path/to/public/key git@github.com

Bu işe yararsa, anahtarınızın ssh istemciniz tarafından GitHub'a gönderilmediği anlamına gelir.


1
çok kötü, sana birden fazla oy veremem! Bu sorunu iki haftada iki kez yaşadım ve bu SO yazısını her bulduğumda google'dan sonra. TEŞEKKÜRLER! :)
Ionuț Staicu

1
Bununla güreşiyordum - tüm git yapılandırmasını değiştirmiştim, ancak ssh-add eksik olduğum adımdı - çok teşekkürler!
metadaddy

Bu harika yanıt bağlamında sadece küçük bir öneriydi - ama "Origin" i "GitHub" (veya sunucu adı) olarak yeniden adlandırmayı seviyorum, bu, bir şeyleri nereye gönderdiğinizin kavramsallaştırılmasına gerçekten yardımcı oluyor.
Alex C

Bu benim için de çalıştı. Github'daki talimatları izlerseniz, kaynağının ne olduğu hemen belli olmaz.
nick

help.github.com/win-set-up-git sonuna kadar takip edin - bana yardımcı oldu. İzin reddedildi (publickey). - yerel makinenizde sizin için bir ssh anahtarı kurduğunuz anlamına gelir. ssh-keygen -t rsa -C "e-postanız@youremail.com"
Roger Alien

28

Bu, uzaktan kumandanızla ilgili bir sorundur. Bunu yaptığınızda git push origin master, originuzak ve mastersen itiyorsun dalıdır.

Bunu yaptığınızda:

git remote

Bahse girerim liste içermiyor origin. Uzak orijini yeniden eklemek için:

git remote add origin git@github.com:your_github_username/your_github_app.git

Veya varsa ancak yanlış biçimlendirilmişse:

git remote rm origin
git remote add origin git@github.com:your_github_username/your_github_app.git

10

VonC'nin cevabı en iyisi, ancak benim için işe yarayan kısım çok basitti ve diğer birçok olası cevap arasında bir nevi gömülü. Eğer benim gibiyseniz, bu sorunla bir "raylara başlarken" öğretici çalıştırırken karşılaştınız ve genel / özel SSH anahtarlarınızı AYARLAMADINIZ.

Eğer öyleyse, şunu deneyin:

  1. $>cd ~/.ssh

  2. $>ls

  3. Ls'nin çıktısı ise known_hostsve başka bir şey değilse, http://help.github.com/mac-key-setup/ adresini ziyaret edin ve "Anahtar oluşturma" bölümünden ve aşağıdan talimatları izlemeye başlayın.

Bu talimatları çalıştırdıktan sonra, "git push origin master" komutum çalıştı.


sadece bu sayfayı arıyordum. çok teşekkürler! = D
Hugo Mota

Sorunumu çözdü. İşletim sistemim Mac OS X ve "Ruby on Rails 3 Tutorial" kitabını takip ediyordum ve bir yapmam gerektiğinde Bölüm 1.3.4'te takılı kaldım git push origin master.. Git ve Rails'i ilk kez kuruyordum. Umarım bu diğer insanlara yardımcı olmuştur.
sivabudh

4

Aynı sorunu yaşıyorum ve güvenlik duvarının git protokolünü engellediğini düşünüyorum. Sonunda, almak ve itmek için https: // kullanmaya başvurmam gerekiyor. Ancak bu her zaman kullanıcıdan parolayı girmesini isteyecektir ...

işte benim için neyin işe yaradığı örneği (sadece paylaşmak için git: // protokolünü kullanamazsınız :)

git fetch https://[user-name]@github.com/[user-name]/[project].git

Yukarıdakiler işe yararsa, kaynağı kaldırıp yerine

git remote rm origin  
git remote add origin https://[user-name]@github.com/[user-name]/[project].git

1
İsterseniz ~/.netrcşifreyi dosya deposu olarak kullanabilirsiniz . Bunu curlnasıl kullanacağınıza dair ayrıntılara bakmanız gerektiğinde git'in HTTP (S) transferleri için kullandığı şey tarafından kullanılır.
Arrowmaster

1
@Arrowmaster: Windows kullanıyorsanız, ~/_netrc(' _', değil ' .') kullanmanız gerektiğini unutmayın
VonC

Yorumlar için teşekkürler, bunu deneyeceğim!
ken

Bu benim için çalıştı. Teşekkürler. Bunun bir hata olup olmadığını merak ediyorum.
Larry Battle

1

Sanırım bu da git hata mesajlarının yanıltıcı olduğu bir durum. Genellikle bu hatayı gördüğümde, bunun nedeni ssh sorunlarıdır. Genel ssh anahtarınızı github hesabınıza eklediniz mi?

Düzenleme: Ayrıca, xinet.d forum gönderisi git-daemon'un insanların sisteminizden çekebilmesi için bir hizmet olarak çalıştırılmasına atıfta bulunmaktadır. Github'a basmak için git-daemon'u çalıştırmak gerekli değildir.


1
Genel anahtarımı github hesabıma ekledim. - Sorun Git'ime bir uzak dal ekledikten sonra başladı.
Léo Léopold Hertz 준영

1
Yeni bir ssh anahtar çifti oluşturdum. Yeni anahtarı Github'a yapıştırdım ve eskisini Github'dan kaldırdım. Aynı sorun devam ediyor.
Léo Léopold Hertz 준영

1

Aynı sorunu yaşıyorum ve ~ / .ssh / id_rsa.pub içeriğini GitHub'daki hesabıma ekledim. Bundan sonra tekrar deneyin git push origin master, çalışmalıdır.


0

Hatırlanması gereken en önemli şey, 'orijin' kullanmanız gerekebilecek değer değildir ... 'origin'i repo adıyla değiştirdiğimde benim için işe yaradı.


0

Yukarıdaki yanıtların ele almadığı bir olasılık, kabuğunuzdan ssh erişiminizin olmaması olabilir. Yani, ssh hizmetinin engellendiği bir ağda olabilirsiniz (bazı üniversite ağları bunu yapar) Bu durumda yalnızca github hizmetlerini değil, diğer ssh hizmetlerini de alabileceksiniz. Başka bir ssh servisini kullanmaya çalışarak sorunun bu olup olmadığını test edebilirsiniz.


0

Bu sorunu yaşadım ve çözmek için yukarıda listelenenlerin birçoğu da dahil olmak üzere çeşitli çözümler denedim (yapılandırma dosyası, hata ayıklama ssh vb.). Sonunda, yerinde yeni bir depo oluştururken github talimatları uyarınca git push'a -u anahtarını ekleyerek çözdüm - Github yeni Depo

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.