Git hatası: "Lütfen doğru erişim haklarına sahip olduğunuzdan ve kod deposunun mevcut olduğundan emin olun"


107

Windows'ta TortoiseGit kullanıyorum. Standart Windows Gezgini'nin içerik menüsünden Klonlamaya çalıştığımda şu hatayı alıyorum:

Lütfen doğru erişim haklarına sahip olduğunuzdan ve havuzun mevcut olduğundan emin olun

Daha doğrusu, terminalin anlık görüntüsü şudur:

git.exe clone --progress -v "git @ arobotdev: \ git \ AlfaRobot.git" "C: \ Work \ AlfaRobot"

'C: \ Work \ AlfaRobot'a klonlanıyor ...
İzin reddedildi, lütfen tekrar deneyin.
Erişim izni reddedildi, lütfen tekrar ediniz.
İzin reddedildi (publickey, şifre).
ölümcül: Uzak depodan okunamadı.

Lütfen doğru erişim haklarına sahip olduğunuzdan
ve havuzun mevcut olduğundan emin olun .

git temiz bir şekilde çıkmadı (çıkış kodu 128) (21450 ms @ 19.09.2014 10:36:58)

Git'in düzgün çalışması için ne yapmalıyım?


1
ssh keygen oluşturmayı deneyin ve ekleyin
Raja Simon

SSH Anahtarı oluşturmak için Shell'i (veya Windows'ta Git Bash'i) kullanma:$ ssh-keygen -t rsa -C "youremail@example.com"
Belter

Depoları git@github.com adreslerine değiştirdikten sonra şifreyi sürekli yazmak zorunda kalmamak için bu hatayı yaşadım Buna neden olan asıl hata, genel anahtarımı github'a eklemeyi unutmaktı.
dasWesen

Yanıtlar:


82

Git URL'niz değişmiş olabilir. Aşağıdaki komutu kullanarak yerel dizindeki URL'yi değiştirin

git remote set-url origin git@yourGitUrlHere

20
Bilginize github artık bir url şeması kullanıyor:git remote set-url origin https://github.com/username/repository.git
RyPope

2
@RyPope herhangi bir protokolü ya git (ssh) ya da https kullanabilirsiniz, bu sizin dileğiniz. Github hemen protokollerini sahiptir gitve https.
Vishnu

@Vishnu Nedir XXXXXXX?
244boy

@RyPope Cevaba dönüştürün
ishandutta2007

Benim tarafımdan çok yaygın bir hata yapıldı. Clip komutunu kullanarak kopyaladım xclip -sel clip < ~/.ssh/id_rsa.pub, ancak github anahtar giriş kutusuna yapıştırırken, son satır satırını geri al kullanarak kaldırdım, bu da aslında genel anahtarı değiştirdi. Bu nedenle, ssh genel anahtarını olduğu gibi kopyalayıp yapıştırın, son satırı kaldırmadan.
Amreesh Tyagi

72

Bu sorun ssh-agent'ınızda olabilir, ssh anahtarınız ssh-agent ile eklenmemiştir. Terminalinizi kullanarak aşağıdaki adımları uygulamanız gerekir: -

  1. $ eval "$ (ssh-aracı -s)"

    Ajan pid 5867

  2. $ ssh-ekle

    /Home/you/.ssh/id_rsa için parola girin: [] Kimlik eklendi: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

o zaman işe yarayacak ... cheers J.


11
fatal: Could not read from remote repository.
Klonlarken

Benim için işe yaradığına şükür, varsayılan id_rsa'dan farklı bir anahtar oluşturdum, bu yüzden yukarıdaki ssh-add -K ~ / .ssh / id_rsa_other_project komutunda ek olarak yapmak zorundayım.
Nitesh

Evet, bu hiçbir sorunu çözmez. Kimliğinizi
ssh'ye

şerefe. Kaçamamıştım brew update. ssh-addKomutu çalıştırmadan önce koştuğumda işe yaradı. Umarım bunu her zaman tekrar etmem.
nyxee

yine de "Ana bilgisayar anahtarı doğrulanamadı. önemli: Uzak depodan okunamadı." hatasını alıyorum. ancak benim için bilinen ana bilgisayarın eklenmesi düzeltildi: stackoverflow.com/questions/15214977/…
rickvian

42

GIT'den klon alırken SSH yerine HTTPS kullanmayı deneyin, klon almak için bu URL'yi kullanın, Gitbase, Android Studio veya dalı klonlamak için başka herhangi bir aracı kullanabilirsiniz. görüntü açıklamasını buraya girin


36

Benim için bunun sebebi makinede SSH anahtarı olmamasıydı. SSH anahtarını yerel olarak kontrol edin:

$ cat ~/.ssh/id_rsa.pub

Bu, SSH anahtarınızdır. Depodaki SSH anahtarlarınıza ekleyin.
Gitlab'da şuraya gidin:

profil ayarları -> SSH Anahtarları

ve anahtarı ekle


7
Anahtarı belirttiğiniz gibi ekledim ve hala erişim reddedildi mesajı alıyorum. Lütfen yardım edin
Jet

24

Github artık bir url şeması kullanıyor

git remote set-url origin https://github.com/username/repository.git


fatal: No such remote 'origin'. Github'da bir depom var ve ile makinemde bir git yerel deposu başlattım git init.
Noah J. Standerson

9

Depoyu ssh: üzerinden klonlamaya çalışıyorsunuz git@arobotdev...ve SSH anahtarlarınız sunucuda düzgün ayarlanmamış. Bunun birçok nedeni var:

  1. Genel anahtarınız git kullanıcısının auth_keys dosyasına kaydedilmeyebilir
  2. 1 doğru değilse, özel anahtarınız HOMEDIR'inizin .ssh / klasörüne kaydedilmez.
  3. İzinler doğru şekilde ayarlanmadı

Yukarıdakilerin tümü doğru değilse, o zaman tek sonucum denemek olabilir: git@arobotdev:AlfaRobot.git AlfaRobot.git'in git kullanıcısının HOMEDIR'inde olduğunu ve git kullanıcısının HOMEDIR'inde bulunan git adlı bir klasörde olmadığını varsayarsak.


5

Rsa.pub (yani oluşturulan ortak anahtar), github >> ayarlar >> ssh anahtarları sayfasına eklenmelidir. Bu ortak anahtarı depo ayarları >> dağıtım anahtarlarına eklemediğinizi kontrol edin. Öyleyse, girişi buradan kaldırın ve belirtilen ilk yere ekleyin.

Pub-private anahtarlarının ayrıntılı olarak kurulumu .

Dolayısıyla işe yarayacak!


5

Daha önce çalışıyordu ve aniden çalışmayı bıraktıysa:

Bu sorunun nedeni, bazen ssh-agentyeniden başlatmalarda kalıcı olmaması olabilir. ssh-agentAnahtarınızın eklenip eklenmediğini kontrol etmelisiniz :

ssh-add -l -E md5

çıktıyı şöyle alırsanız:

The agent has no identities.

bu ssh-agent, anahtarınızı kaybettiği anlamına gelir . Bu durumda, kimlik anahtarını tekrar eklemeniz yeterlidir. Gibi bir şey:

ssh-add ~/.ssh/git_rsa

Hata şimdi ortadan kalkmalı!


1
Bu, farklı bir hesap için başka bir ssh oluşturduğumda başıma geldi, bu yüzden eksikleri git_rsalisteye ekliyorum
John

3
  1. Onaylamak isteyebileceğiniz ilk şey internet bağlantısıdır. Bununla birlikte, internet sorunları çoğunlukla repoya erişilemediğini söyleyecektir.

  2. Hem yerel olarak hem de github'ınızda ssh kurduğunuzdan emin olun. Nasıl olduğunu görün

  3. Ssh git uzaktan kumandasını kullandığınızdan emin olun. Https'yi klonladıysanız, bu git komutuyla url'yi ssh url'sine ayarlayın.git remote set-url origin git@github.com:your-username/your-repo-name.git

  4. Ssh'ı doğru bir şekilde kurduysanız ancak çalışmayı durdurduysa, aşağıdakileri yapın:

    • eval "$(ssh-agent -s)"
    • ssh-add

    Hala sorun yaşıyorsanız, ssh'ı github'ınızdan silmediğinizden emin olun. Ssh'ın github'dan silinmesi durumunda, onu geri ekleyebilirsiniz. pbcopy < ~/.ssh/id_rsa.pubSsh anahtarını kopyalamak için kullanın ve ardından github ssh ayarınıza gidin ve ekleyin.

Her zaman ssh kullanmanızı tavsiye edeceğim. Çalıştığım çoğu ekip için, ssh kullanmadığınız sürece depoya (çoğunlukla özel olan) erişemezsiniz. Yeni başlayanlar için daha zor görünebilir, ancak daha sonra çok daha kolay ve daha güvenli bulacaksınız.


3

Bu sorunu yaşadım ve sistemimin yanlış DNS adresiyle olduğunu keşfettim. Ağınızı doğrulayın ve ile test edin

ssh -vvv git@bitbucket.org

Ve çıkış mesajlarını okuyun. "Bitbucket'a bağlanmak için git veya hg kullanabilirsiniz." , her şey yolunda.


merhaba @Albert, aynı sorunla karşı karşıyayım ama gitlab.com için. Sorunu nasıl çözdünüz?
abiratsis

@AlexandrosBiratsis DNS'mi başka bir adresle değiştiriyorum. Opendns veya google dns'yi deneyin.
albert

3

Gitlab'a proje yüklerken bu hatayla karşılaşıyorum. Git'ten klonlamadım, bunun yerine proje yükledim. Kodunuzu gitlab'a göndermek için ssh veya https kullanmak için iki yolunuz vardır. Https kullanıyorsanız gitlab hesabının kullanıcı adını ve şifresini girmeniz gerekir. Kodunuzu git'e göndermek için aşağıdakini kullanabilirsiniz.

Git'e ilk kez gönderme

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"

-C parametresi isteğe bağlıdır, birden fazla varsa anahtarınızın sonunda onu diğerlerinden ayırt etmek için bir açıklama sağlar. Bu id_rsa (özel anahtarınız) ve id_rsa.pub (genel anahtarınız) oluşturacaktır. Açık anahtarımızı başka bir yere iletiriz ve özel anahtarımızı saklarız - iyi, özel. Gitlab en Kullanıcı Ayarları daha sonra nereye olduğunu eklemek için hesabınıza genel anahtarı Nihayet itmek için izin.

Proje konumunuzda (Dizin) aşağıdaki komutu kullanın

git init

Mevcut dizini bir Git deposuna dönüştürür. Bu, geçerli dizine bir .git alt dizini ekler ve projenin revizyonlarını kaydetmeye başlamayı mümkün kılar.

Https yolunu kullanarak itin

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

Ssh yolunu kullanarak itin

git push --set-upstream git@gitlab.com:Account_User_Name/Your_project_Name.git master

- set-upstream: git'e başlangıç ​​noktasına giden yolu söyler. Git, mevcut dalınıza önceden basmışsa, başlangıç ​​noktasının nerede olduğunu hatırlayacaktır.

master : bu, başlatırken göndermek istediğim dalın adıdır


teşekkürler, benim için çalıştı
Chamath Viranga

3

Paylaşılan bir makinedeyseniz, kendi şifrenizi veya şifresiz özel anahtarınızı kullanmak aşırı olabilir. Daha güvenli seçenek bir erişim belirtecidir:

  1. Git Ayarlar, Geliştirici Ayarları, Kişisel erişim belirteçleri
  2. Yeni jeton oluşturun.
  3. Jetonun ne için olduğuna dikkat edin.
  4. Grant Repo erişimi.
  5. Depoyu klonlayın:
$ git clone https://<token>@github.com/<user>/<repo>.git

Depoyu zaten klonladıysanız, uzaktan ayarınızı değiştirebilirsiniz:

$ git remote set-url origin https://<token>@github.com/<user>/<repo>.git
$ git pull
Already up to date.

2

İşte bu sorunu nasıl çözdüğüm. Win7 / 10'da Babun (mintty.exe) kullanıyordum. Yukarıda bahsedilen birçok çözümü denediğimde ve hiçbiri işe yaramıyor. Belki de yanlış SSH ajanı kullandığımı fark ettim ... Bu yüzden echo $GIT_SSHöğrenmek için koşarım ,Plink.exe . Aslında beklediğim şey OpenSSH.

Bu yüzden, ~/.zshrcdosyaya aşağıdaki tek satırlık ekliyorum

Not 1: Babun'da doğrudan da çalıştırabilirsiniz
Not 2: Eğer bash kullanırsanız, o zaman yapılandırma dosyası.bashrc

export GIT_SSH=$(which ssh)

Ve çalışıyor!



2

Ssh yerine https'yi deneyin. Klon url'sini kopyaladığınız proje ana sayfasından https seçeneğini seçin.


2

Ubuntu kullanıyorum

Bir çok cevabı okuduktan sonra, git hesabıma SSH anahtarı eklemiş olsam bile hiçbiri sorunu çözemez ve kullanarak test etmeyi deneyin ssh -T git@gitlab.comdedi Welcome <my username>, ama yine de bana erişim hakkım olmadığını söylemeye devam etti. Sonra sebebini buldum:

Normalde rootkullanıcı değilseniz, birlikte çalışmanızı gerektirir.sudo her git komutu için .

koşarken sudo git clone <SSH....> (örneğin). rootizin altında çalıştırılacak , ancak yanlışlıkla SSH anahtarı oluşturduğumda onu normal kullanıcı olarak çalıştırıyorum ve anahtarı ~/.ssh/id_rsakaydediyorum, mutlak yolu çözüyor /home/username/.ssh/id_rsa. Ve bunu yaparken sudo git clone ...SSH anahtarını arar/root/.ssh/id_rsa

Bundan neden emin olabiliyorum. Git'in SSH anahtarınızı nerede aradığını görmek için. Bu komutu çalıştırın: sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>. SSH anahtarınızı nerede aradığını size gösterecektir.

Öyleyse önerdiğim ÇÖZÜM:

SSH anahtarınızı yeniden oluşturun (bu talimatı izleyin ) ANCAK sudo suilk adımda çalıştırın , o zaman iyi olacaksınız.


Bunun için teşekkürler. Bu tamamen aynı senaryomdu
afolabiabass

1

Bu, git deponuza bir VPN aracılığıyla bağlanıyorsanız da olabilir. Kuruluşunuzun kaynaklarına erişmek için kullanılan VPN'e bağlı olduğunuzdan emin olun.


1

Benim için iyi çalışmayı kestikten sonra şirket VPN ile sorun yaşıyordum.

Komutu kullanarak github ile bağlantıyı kontrol edin ssh -vvvT git@github.com


0

Alternatif bir sorun internet bağlantınız olabilir. Belli olabilir, ama wifi'imin kapalı olduğunu anlamam birkaç dakika sürdü :)


1
Hata mesajına göre, burada internet bağlantısı bir sorun gibi görünmüyor.
jbmusso

0

Diğer cevaplar gibi, çözüm httpsyerine kullanın ssh.

Olası bir çözümün somut bir örneğini vermek için bir cevap gönderiyorum. Bu komut satırı ile uzak url'yi HTTPS olarak değiştirdiğimde bu sorunu bitbucket ile çözdüm:

git remote set-url origin <bitbucket_URL>

Bundan sonra, şu komutla içeriği arşive gönderebilirim:

git push -u origin --all

Ve sonra Sourcetree'yi de kullanabilirim


0

Garip bir şekilde bu hatayı birçok depomun yalnızca 1'inde aldım.

Sorunum, önceki Win for Win'in anahtarları tuttuğu ~/.ssh/github_rsave ~/.ssh/github_rsa.pubyeni GitHub for Win'in beklediği Windows için yeni GitHub Desktop'ı kurduktan sonra ~/.ssh/id_rsa, çözümün mevcut özel ve genel anahtarları yeniden adlandırmasıydı:

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

Bundan sonra depoya tekrar sorunsuz bir şekilde erişmeme izin verin.


0

ssh url yerine https kaynağınızı kullanın

misal:

git remote add origin  https://gitlab.com/user/folder.git

0

Ssh anahtarı eklemek benim için çalıştı. Mac'te ssh-keygen komutuyla ssh anahtarı oluşturabilirsiniz. Havuzunuz> Ayarlar'da Anahtarları dağıt menüsünü görebilmeniz gerekir, Yazma erişimine izin ver seçeneğini işaretlemeyi unutmayın.

anahtarları dağıt menüsü ekran görüntüsü


0

Benim tarafımdan çok yaygın bir hata yapıldı. Clip komutunu kullanarak kopyaladım xclip -sel clip < ~/.ssh/id_rsa.pub, ancak github anahtar giriş kutusuna yapıştırırken, son satır satırını geri al kullanarak kaldırdım, bu da aslında genel anahtarı değiştirdi.

Bu nedenle, ssh ortak anahtarını her zaman olduğu gibi kopyalayıp yapıştırın, son satırı kaldırmadan.


0

Https kullanımına geçiş çalışmaları. Önce ssh anahtarları yerine https'ye geçin. git uzak set-url kaynağı

Daha sonra git kullanıcı adı ve şifresini isteyecektir.


0

Bu sorunu, makinemde geçersiz bir RSA SSH anahtarım ve geçerli bir ED25519 SSH anahtarım olduğunda yaşadım. Gitlab'ın RSA anahtarını kontrol ettiğine inanıyorum, ED25519 anahtarını kontrol etmeden önce başarısız oluyor ve orada duruyor.

Bunu, cihazımdaki her iki anahtarı da silerek ve yeni bir RSA SSH oluşturarak ve bunu da gitlab sağlayarak düzelttim.

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.