Git'in ünlü "HATA: .git izni kullanıcıya reddedildi"


119

Googling yapmayı denedim ve https://help.github.com/en/articles/connecting-to-github-with-ssh ve çeşitli, çeşitli kılavuzları okudum . Yapamıyorum git push -u origin masterveya git push origin master(aynı komut).

Git hesabımı en az 2 yıldır kullanıyorum. push -u origin masterDizüstü bilgisayarımda başarılı bir şekilde repolar oluşturabildim ve bu masaüstünde sorun yaşıyorum.

İşte denediğim şey:

1. git kullanıcı adımı ayarladım

2. git kullanıcı e-postamı kurdum

3. /home/meder/.ssh/id_rsa.pub'umun içeriğini github'ın hesap sayfasına yükledim. Herhangi bir boşluk yapıştırmadığımı doğruladım

4. Bu içeriklerle bir ~ / .ssh / config oluşturdum:

  Host github.com
  User git
  Hostname github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa

.Ssh dosyasını 700, id_rsa 600 olarak değiştirdim

5. Yazım hatası yapmadan uygun uzak kaynağı ekledim :git remote add origin git@github.com:medero/cho.git

6. # 5'i onaylamak için, işte benim .git / config'im. Dizin doğru ve başka bir dizin değil:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:medero/cho.git

7. ssh git@github.com -v bana başarılı bir kimlik doğrulama veriyor

8. Garip bir şey, beni selamladığı kullanıcı adının teklenmiş olması. Github kullanıcı adım mederodeğil medert.

Merhaba mederot! Başarıyla doğruladınız, ancak GitHub kabuk erişimi sağlamıyor.

9. Ben değil bir proxy veya güvenlik duvarı arkasında

10. Anahtar sunulur, buradan çıktı -v:

debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home/meder/.ssh/known_hosts:58
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/meder/.ssh/id_rsa
debug1: Remote: Forced command: gerve mederot
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: { some stuff, dont know if i should share it

debug1: Remote: Forced command: gerve mederot
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).

11. İşte kullandığım komutlar

mkdir cho
git init
touch README
git add README
git commit -m 'test'
git remote add origin git@github.com:medero/cho.git
git push -u origin master

12. Yeni bir SSH anahtarı oluşturmak istemiyorum.

13. ssh kullanarak klonlama yaparsam ve bir düzenleme, kaydetme ve git push yaparsam, tam olarak aynı şeyi elde ederim.

14. İşte gerçek hata:

$ git push
ERROR: Permission to medero/cho.git denied to mederot.
fatal: The remote end hung up unexpectedly

15. Github kullanıcı adımı ve github belirtecimi ayarladım:

$ git config --global github.user medero $ git config --global github.token 0123456789yourf0123456789tokenSistemdeki tüm git örnekleri için GitHub belirtecini ayarlar

16. Github kullanıcı adımın OLMADIĞINI mederotve hesap sayfam başına github simgemin DOĞRU OLDUĞUNU onayladım (ilk 2 karakter ve son 2 karakter doğrulandı).

17. # 16'yı doğrulamak için, ~ / .gitconfig şunu içerir:

[github]
    token = mytoken...
    user = medero

18.ssh-key add ~/.ssh/id_rsa Gerekirse yaptım ...



TEORİLERİ:

Balıklı bir şeyler olduğundan şüpheleniyorum çünkü ssh kimlik doğrulaması aldığımda, kullanıcı selamlaması oluyor mederotve değil medero, ki bu benim hesabım. Github hesabımdaki bir şey muhtemelen yanlış bir şekilde önbelleğe alınabilir mi?

İ çünkü eğer ben de bazı yerel ssh önbelleğe garabeti şüpheli mv ~/.ssh/id_rsa KAKAve mv ~/.ssh/id_rsa.pub POOPOOve yapacak ssh git@github.com -v, hala doğrular beni ve onu değiştirildi zaman benim /home/meder/.ssh/id_rsa vermektedir diyor ?! Önbelleğe alınması mı gerekiyor ?!


"Windows için Github" kullanıyorum ve iki Github hesabı arasında geçiş yaparken benzer bir sorunla karşılaştım. İşte benim çözümüm: stackoverflow.com/questions/18565876/…
Alisa

2 farklı yerel
depodan

Yanıtlar:


35

18. adımda, demek istediğini varsayıyorum ssh-add ~/.ssh/id_rsa? Eğer öyleyse, bu bunu açıklıyor:

Ayrıca bazı yerel ssh önbelleğe alma garipliklerinden de şüpheleniyorum çünkü mv ~ / .ssh / id_rsa KAKA ve mv ~ / .ssh / id_rsa.pub POOPOO yaparsam ve ssh git@github.com -v yaparsam, hala benim kimliğimi doğruluyor ve hizmet ettiğini söylüyor /home/meder/.ssh/id_rsa adını değiştirdiğimde ?! Önbelleğe alınması mı gerekiyor ?!

... ssh-agentanahtarınızı önbelleğe aldığından beri .

GitHub'a bakarsanız, bir mederot hesabı var. Bunun seninle bir ilgisi olmadığına emin misin? GitHub, aynı SSH ortak anahtarının iki hesaba eklenmesine izin vermemelidir, çünkü git@github.com:...URL'leri kullandığınızda , kullanıcıyı SSH anahtarına göre tanımlar. (Buna izin verilmemesi gerektiği burada onaylanmıştır .)

Bu nedenle, (azalan olasılık sırasına göre) aşağıdakilerden birinin durum olduğundan şüpheleniyorum:

  1. Mederot hesabını önceden oluşturdunuz ve buna SSH anahtarınızı eklediniz.
  2. Başkası sizin genel anahtarınızın bir kopyasını aldı ve bunu mederot GitHub hesabına ekledi.
  3. GitHub'da korkunç bir hata var.

Durum 1 değilse, bunu GitHub'a bildirirdim, böylece yaklaşık 2 veya 3'ü kontrol edebilirler.

Daha :

ssh-add -l eğer evet ise birden fazla kimlik olup olmadığını kontrol edin, ssh-add -d "o anahtar dosyası" ile kaldırın


Harika yardım Mark! Bu benim için de düzeltti.
Leachy Peachy

Bu oydu. Beni büyük bir baş ağrısından kurtardın. Şimdi, ssh-add ...github / ssh girişlerimi her değiştirmek istediğimde çalıştırmayı hatırlamam gerekiyor .
Cerin

Nedense ssh-add -d <keyfile>çalışmıyor. (Dosyaların elle silinmesi yaptı.) Bahsettiğiniz önbelleğe alma bir şekilde manuel olarak yeniden yüklenmelidir. Nasıl?
not2qubit

ssh-add -d-> "Kimlik doğrulama aracınızla bağlantı açılamadı."
alex

ssh-addBenim için yaptın biraz oldu. Teşekkürler!
rayryeng

160

Birkaç gün Google'da çalıştıktan sonra, durumuma benzer tek sorunun bu olduğunu fark ettim.

Ancak, sorunu az önce çözdüm! Bu yüzden, bu sorunu arayan başka birine yardımcı olmak için cevabımı buraya koyuyorum.

İşte yaptığım şey:

  1. "Keychain Access.app" dosyasını açın (Bunu Spotlight veya LaunchPad'de bulabilirsiniz)

  2. Kategoride "Tüm öğeler" i seçin

  3. "Git" ara

  4. Her eski ve garip öğeyi sil

  5. Tekrar itmeyi deneyin ve işe yaradı


17
Yaşasın dostum. Sen bir kahramansın.
Prince Bansal

1
Cehennem evet, sonunda, sayısız SSH anahtarıyla uğraştıktan sonra, işe yarayan cevap bu! Görünüşe göre Mac ve https erişimi Anahtar Zinciri'ni kullanıyor. Çılgın.
Patrick Chu

1
HAFTALARDAN BUNU ÇÖZMEYE ÇALIŞTIĞINIZ İÇİN LÜTFEN
Jon Hendershot

1
Çok yardımcı görünüyor, ancak ne olduğu belirsiz old & strange. Bir sürü şeyi mahvetmek üzere miyim ..?
geotheory

1
@geotheory Bu old & strangeşeyler, eski tarih öğeleri ve yanlış e-posta veya kullanıcı adı anlamına gelir. Tabloyu buna göre sıralayabilirsiniz Date Modified.
Alice Chan

92

Windows'ta sorun ortaya çıkıyorsa, Kimlik Bilgilerini Windows geçmişinden kaldırın.

  • Kimlik Bilgisi Yöneticisine git
  • Windows Kimlik Bilgilerine gidin
  • Generic Credentials altındaki girişleri silin
  • Tekrar bağlanmayı deneyin. Bu sefer sizden doğru kullanıcı adı ve şifreyi girmeniz istenecektir.

görüntü açıklamasını buraya girin görüntü açıklamasını buraya girin

kimlik bilgilerini git'ten kaldır


2
Mükemmel. Artık kullanmadığım bir hesapla 403'e erişiyordum. Şimdi çözüldü.
Anton Epikhin

1
sadece github.com kimlik bilgilerini silmek benim için yeterliydi
Bart De Boeck

Ve orada kullanıcı adınızı ve herhangi bir şeyi değiştirebilirsiniz. Yol budur.
WesternGun

Aslında bu benim için de çalıştı ama 2 farklı hesabım olsaydı ne yapardım?
an4s911

22

Birden GitHub giriş bilgilerine sahip ve eğer Mac'te, değil SSH kullanarak, kullanarak doğru girişe zorlamak:

git remote set-url origin https://username@github.com/username/repo-name.git

Bu, özel bir depoya göndermede sorun yaşıyorsanız da işe yarar.


1
Teşekkürler, bu benim için çalıştı. Benden şifre istedi ve şifremi girdikten sonra zorlayabildim. Çok takdir!
piksel

... ancak bu benim için sorunu Windows'ta çözmedi, yalnızca Mac'te
piksel

... ancak @Fahid, Windows'ta kimlik bilgilerini temizlemek için yukarıda öneriyor
piksel

Sen bir kahramansın
Vaibhav

Farklı hesaplara ait birden fazla github projemiz varsa bu doğru cevaptır
Gangadhar JANNU

14

Bir çatışma nedeniyle.

Ssh-agent'ın tüm anahtarlarını temizle

ssh-add -d ~/.ssh/id_rsa
ssh-add -d ~/.ssh/github

Github ssh anahtarını ekleyin

ssh-add   ~/.ssh/github

Şimdi çalışmalı.


3
ayrıca ssh-add -Dtüm kimlikleri kaldırır, aracı geçersiz bir duruma girerse faydalı olabilir.
Sam

6

Mac kullanıyorum ve sorun, anahtarlık erişim uygulamasından github kaydını silerek çözüldü: İşte yaptığım şey:

  1. "Keychain Access.app" dosyasını açın (Bunu Spotlight veyaLaunchPad'de bulabilirsiniz)
  2. Kategoride "Tüm öğeler" i seçin
  3. "Git" ara
  4. Her eski ve garip öğeyi silin Tekrar İtmeyi deneyin ve sadece ÇALIŞTI

Yukarıdaki adımlar, kolaylık için @spyar'dan kopyalanmıştır.


6

Çözümün, Anahtar Zinciri Erişimi olan @spyar ile aynı olduğunu görüyorum eski kullanıcı adını depolayan uygulaması .

Bu durum için 2 çözüm var:

  1. Anahtar Zinciri Erişimi'ndeki bilgileri şu şekilde silin :
    • Anahtar Zinciri Erişimi uygulamasını açın
    • Github ara
    • İlgili kimlik bilgilerini silin

Veya

  1. Eğer ssh anahtarını kullanmak istiyorsanız . Repo url'nizi https'den değiştirirsiniz

https://github.com/username/repo.git

içine

git@github.com: adı / repo.git

Bu yardımcı olur umarım.


2

Geçenlerde bu sorunla makinemdeki https kullanılarak yukarı itilen eski depoda karşılaştım. 5. ve 6. adımlar, depom için uzak url'yi https url'sinden ssh url'sine yeniden ayarlayarak sorunumu çözdü

uzaktan kumandanın https url'sini kullanıp kullanmadığını kontrol etmek

> git remote -v
origin  https://github.com/ExampleUser/ExampleRepo.git (fetch)
origin  https://github.com/ExampleUser/ExampleRepo.git (push)

sonra ssh url'sini kullanmak için kaynağı yeniden ayarlama

> git remote set-url origin git@github.com:ExampleUser/ExampleRepo.git

yeni uzaktan kumanda doğrulanıyor

> git remote -v
origin  git@github.com:ExampleUser/ExampleRepo.git (fetch)
origin  git@github.com:ExampleUser/ExampleRepo.git (push)

şimdi başarılı olabilirdi git push -u origin

Uzaktan kumanda https olduğunda push işleminin başarısız olmasına neden olabilecek hangi ayarı değiştirebileceğimi hâlâ bilmiyorum ama bu benim sorunumun çözümüydü


HATA: unrealcv / sentetik-computer-vision.git izni, monajalal için reddedildi. ölümcül: Uzak depodan okunamadı. Lütfen doğru erişim haklarına sahip olduğunuzdan ve havuzun mevcut olduğundan emin olun.
Mona Jalal

1

Seninle aynı sorunu yaşadım. Google'da uzun bir süre geçirdikten sonra, hatamın hesaplarına aynı anahtarı eklemiş olan birden çok kullanıcıdan kaynaklandığını öğrendim.

İşte benim çözümüm: yanlış kullanıcının ssh anahtarını silin (bunu yapabilirim çünkü yanlış kullanıcı da benim hesabımdır). Yanlış kullanıcı sizin hesabınız değilse, ssh anahtarınızı değiştirmeniz gerekebilir, ancak bunun olacağını sanmıyorum.

Ve sanırım sorununuz hesap adınızdaki bir yanlış yazım hatasından kaynaklanıyor olabilir.


0

Bu soruna ayrıca şunlar da neden olur:

Mac / linux kullanıyorsanız ve ~ / .ssh / config dosyanızda 'ControlMaster' kullanıyorsanız, çalışan bazı ssh kontrol ana işlemleri olabilir.

Onları bulmak için şunu çalıştırın:

ps aux | grep '\[mux\]'

Ve ilgilileri öldürün.


0

Ben de bununla karşılaştım, benim için buna sebep olan şey, depoyu klonlarken değişikliklerimi iterken, klon URL'sini oturum açmadan gizli bir sekmeden aldım. (Nasıl etkilediği konusunda hala fikrim yok). Bu nedense git'in başka bir kullanıcı hesabı seçmesine neden oldu. Doğru bir şekilde oturum açmış bir sayfadan tekrar denediğimde, benim için her zamanki gibi çalıştı.


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.