Git: İzin reddedildi (publickey) ölümcül - Uzak depodan okunamadı. Git deposunu klonlarken


153

Git deposunu klonlayamıyorum ve bu hatayı alıyorum:

krishna.soni@KRISHNACHANDRAS /c/Projects $ git clone http://stage.abc.com:10088/pqr
http://<url>/<repository> Cloning into '<repository>'... fatal: could not read Username for 'http://<url>': No such file or directory

Okudum Bitbucket, Windows ve “ölümcül: Şifresini okunamadı” , ama yine de sorun var.

Daha ileri gittim ama şimdi bu hatayı alıyorum

sh.exe": chown: command not found

krishna.soni@KRISHNACHANDRAS /c
$ git clone ssh://krishna.sonipayu.in@stage.payupaisa.
/projects
Cloning into 'C:/projects'...
Permission denied (publickey).
fatal: Could not read from remote repository.

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

> krishna.soni@KRISHNACHANDRAS /c
>     $ git clone ssh:<url>
>     ts
>     Cloning into 'C:/projects'...
>     Permission denied (publickey).
>     fatal: Could not read from remote repository.

Please make sure you have the correct access rights

ve depo var.


Git deposu olduğundan emin misin?
gravetii

Evet öyle . Ben klonlama sırasında bu hatayı alıyorum git yeni. Git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com komutlarını kullanarak global config dosyasına e-posta ve ad ekledim
KCS

Bunun ana nedeni, deponun sizi git-server kullanıcısı olarak tanıyamamasıdır. Sunucuya ssh üzerinden erişebilir misiniz?
Малъ Скрылевъ

Birisi Github'u kullanırken bu sorunu yaşıyorsa, burada belirtilen adımları izleyin: help.github.com/en/articles/… Benim için çalıştı.
Rounak

Yanıtlar:


69

Bir izin sorunu gibi görünüyor - Windows 7 sorunu değil.

Ssh anahtarınız yetkilendirilmedi - Permission denied (publickey).

Bir ortak ssh anahtarı oluşturmanız ve Git deposunun yöneticisinden sshortak anahtarı eklemesini istemeniz gerekir

Bunun nasıl yapılacağı hakkında bilgi: ssh anahtarını kaydetme başarısız


27
Bu çok garip. Depo halka açık ve ben halka açık havuzu klonluyorum. Neden yöneticiden Github'da barındırdığı genel deposunu klonlamak için izin istemem gerektiğinden emin değilim.
Shailen

5
Evet, yanlış, yöneticiye hiçbir şey sormanıza gerek yok, yerel git ile ilgili bir sorun.
Ivan Castellanos

3
Neden zor? Başardım ama acısız değildi.
Niklas R.

9
Herkese açık depolar için bir anahtar yetkilendirmeniz gerekmez, sadece HTTPS protokolünü kullanın: stackoverflow.com/a/33072867/1385678
Diego V

225

Buraya sadece depoyu almaya çalışan ancak protokolü (ssh / https) umursamayan insanlar için, yalnızca ssh yerine https kullanmak isteyebilirsiniz (destekleniyorsa).

Yani örneğin

git clone https://github.com/%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

onun yerine

git clone git@github.com:%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

6
Eğer ssh izinleri çözülmezse veya o bölümü atlamak istiyorsanız, bu en uygun geri dönüş planıdır.
Wahib Ul Haq

13
Bu cevap den mekanizmasını değiştirdi sshiçin https. Depoya erişmek için ssh kullanarak özgün sorunu çözmüyor. Sorunun iyi bir cevabı olarak bunun nasıl değerlendirilebileceğini merak ediyorum. Aşağıdaki diğer cevaplar doğru bir şekilde çözüyor.
Armin

3
Asıl sorun, bir repoyu klonlamaya çalışan bir git acemi. Eğer amaç halka açık bir repoyu düşürmekse, bu en hızlı etkili cevaptır.
Vivek Chavda

Beni intihardan kurtardığın için teşekkürler. Tarafından, bu kullanıcı adı ve şifre var göz önüne alındığında özel bir repo için kullanılabilir.
BILL WAGNER

81

SSH oluşturduktan ve Bitbucket hesabınıza veya herhangi bir yere ekledikten sonra erişim konusunda hala sorun varsa, GitBash, OSX veya Linux'taki terminalde aşağıdakileri yapmanız gerekir:

# Lists already added identities (‘ssh keys’)
ssh-add -l

Ardından, anahtarınızı listede görmüyorsanız, aşağıdakini ekleyin ( identitygerçek adıyla değiştirin ):

# Add a new identity
ssh-add ~/.ssh/identity

Bu benim için çalıştı.


3
ssh-add ~/.ssh/identitydönüş hatası/Users/lee/.ssh/identity: No such file or directory
lee

14
"~ / .Ssh" klasöründen "ssh-add" komutunu çalıştırmak (ve istendiğinde "~ / .ssh / id_rsa" dosyamın parolasını girmek) sorunu benim için çözdü.
James Furey

1
Repoyu çekebildim ama bunu yapmadan itemedim, şerefe!
Dimitar Nestorov

@james Furey yanıtı ssh url'sini git repo olarak tanımlamamda bana yardımcı oldu.
YSR hayranı

2
benim için çalıştı ... saatlerce terledikten ve farklı şeyler denedikten sonra. Sonunda kimlik yerine tek şey ismi kendi sisteminizde kullanmaktır. Terminalde cd komutu yaparak .ssh klasörüne gidin ve terminalde 'ls' komutu yazın. Daha sonra yukarıdaki komuttan "kimlik" i kendi dosyanızla tekrar oynatın. Sourcetree terminaline gidin ve: cd ~sonra cd .sshsonra ls(.pub uzantısı olmadan adı kopyalayın) sonra (bu komutu çalıştırın)ssh-add ~/.ssh/(copied name)
Tejas

21

Aynı sorun GitHub ile de karşılaştım . İşte nasıl çözeceğiniz!

  1. Bilgisayarınızda açıklandığı gibi bir SSH anahtarı oluşturun: SSH anahtarları oluşturma .
  2. GitHub hesabınıza giriş yapın: GitHub Giriş .
  3. Hesabınıza, yeni oluşturulan SSH Anahtarını ekleyin: Hesabım SSH anahtarları .
  4. git cloneProjeyi tekrar deneyin .

Çekicilik gibi çalıştı !!
Prakhar

1
Bu yanıtı son 5 yılda 3 yeni işletim sisteminde kullandım ve her seferinde mükemmel çalıştı.
kotoole

Görünüşe göre High Sierra, kullanıcının anahtarı .ssh / config dosyasına kaydetmesini gerektirir. El Capitan bir şekilde onsuz başardı.
dsomnus

14

Mac'te bu sorunu yaşadım - Git depomuza erişmek için SSH'yi doğru şekilde kurarken, yeniden başlattıktan sonra (ve Mac bir süre beklemede iken), tüm kimlik bilgilerim kaldırıldı. Görünüşe göre, bazı nedenlerden ötürü pub anahtarı 644'e ayarlanmış ve bu da anahtarlıktan çıkarılmasına neden olmuştur. Okumak için:

  • chmod 600 ortak anahtar
  • ssh-add ~/.ssh/[your private key]- bu, kimliğin eklendiğini göstermelidir. İstediğiniz anahtar dosya .pub uzantısı olmayan dosyadır.
  • ssh-add -l size yeni eklenen kimlik göstermeli

değiştir ssh-add


2
MacOS High Sierra'yı Sürüm 10.13.1'e yükselttikten sonra bu çözüm hala doğrudur. Özellikle, Sourcetree, uzak bir depoya bir taahhütte bulunmaya çalıştığımda sorunu ortaya çıkaran uygulama oldu. Yukarıdaki adımlar benim için sorunu çözdü.
Paul Bonneville

Bu sorunu 10.13.4'te yaşadım ve bu çözüm benim için çalıştı.
Andrew Ebling

11

Aynı sorunla da karşılaştım. Aşağıdakileri yaptım ve benim için çalıştı:

  1. Windows'ta GIT GUI istemcisinden Anahtarlar oluşturun. Bu anahtarı panoya kopyalayın.
  2. bitBucket/Git web sitesinde hesabınızı açın ve bu anahtarı profilinize ekleyin. Bu şekilde sunucu, meşru bir sistemden erişen meşru bir kullanıcı olduğunuzu bilir.
  3. Bu kadar. Bundan sonra tüm itme komutları benim için çalıştı.

Bu, RSA anahtarımı "h" sürücüsüne yerleştiren Git Bash'i Yönetici olarak çalıştırmadan
RSA'mı oluşturduğumu görmeme yardımcı oldu

7

Benim için, depomdan klonlamak istediğimde , "İzin reddedildi (publickey) ölümcül: Uzak depodan okunamadı" mesajından önce de aynı mesajı aldım. Benim durumumun çözümü klondan önce sudo kullanmamak . İşte bu kadar.


Çok teşekkürler mustapha gerçekten zamanımı kurtarıyorsun.
vinay kumar

7

Github (veya Bitbucket) ssh anahtarınızı sunucularında bulamıyor.

Anahtarınızı hesap ayarınıza eklemeniz yeterlidir.


6

Yeni ortak ssh anahtarı oluşturup bitbucket veya github'a yerleştirdiyseniz ve

yardımcı olmadı - lütfen bilgisayarınızı yeniden başlatmayı deneyin . Bana yardımcı oldu!!


Teşekkür ederim, ben de yapmam gereken buydu.
Steph

Terminali kapatıp çalıştığını görmek için yeni bir tane açmak zorunda kaldım.
rahul

5

Çalıştırarak yeni bir ssh anahtarı oluşturmanız gerekir ssh-keygen -t rsa.


@Joel Heroku referansı kaldırıldı. Teşekkürler
biniam

4

Hatayı aldım ...

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

... dizüstü bilgisayarım kötü bir Windows 10 güncellemesinden öldükten ve fabrika ayarlarına döndükten sonra Git Bash isteminden Bitbucket ile iletişim kurmaya çalışırken. Tüm ssh dosyalarımı bir yedekten geri yükledim.

Hatanın nedeni, bilgisayar yeniden oluşturulduktan sonra Windows hesap adımda bir uyumsuzluk olduğu ortaya çıktı. Ortak anahtar dosyasının id_rsa.pubWindows hesap adımı, ardından bir @işaret ve daha sonra bilgisayar adını içeren kolayca okunabilir bir dize ile sona erdiğini öğrendim .

Bilgisayarımı ilk kurduğumda, orta adımı içeren Windows hesap adımı oluşturdum, ancak bilgisayarım fabrika ayarlarına sıfırlandığında, yeni DevOps'umuz orta adım olmadan hesap adımı oluşturdu.

Sorunu çözmek için, ortak anahtar dosyamı düzenledim id_rsa.pubve sonunda adımdaki ilk baş harfi kaldırdım. Aynı bilgisayar adı ile sıkışmıştı, bu yüzden iyiydi. Dosya içeriğini Windows panosuna kopyaladım. Daha sonra Bitbucket'te oturum açtım, avatarımın altındaki Bitbucket Ayarları'na gittim ve yeni içeriğe yapıştırdığım yeni bir ortak anahtar ekledim.

Git Bash komut isteminde, şimdi komut girerek çalıştığını doğruladım ...

ssh -T git@bitbucket.org

... ve oturum açtığım bir mesajı aldım.


4

MacOS / Linux'ta (Ubuntu):

1. Kimlik Doğrulamak için SSH anahtar çiftinizin genel kısmını kullanıcı ayarlarınızdan bitbucket'e eklemeniz gerekir: Kullanıcı Ayarları -> SSH anahtarları

Söz konusu ortak kısmı genellikle ~ / .ssh dizininizde bulabilirsiniz id_rsa.pub. .pubGenel için dosya adının bir bölümünü not edin . Zaten bir tane yoksa bir tane oluşturmanıza yardımcı olacaktır

Henüz işiniz bitmedi ...

2. Sisteminize hangi uzak ana bilgisayarla hangi anahtarı kullanacağınızı bildirmeniz gerekir, bu nedenle bu satırları ~ / .ssh / config dosyanıza ekleyin

Host bitbucket.org
 IdentityFile ~/.ssh/PRIVATE_KEY_FILE_NAME

PRIVATE_KEY_FILE_NAMESSH anahtar çiftinizin özel bölümünün adı nerede , onunla uğraşmadıysanız, genellikle varsayılan adı şudur: id_rsa bu durumda PRIVATE_KEY_FILE_NAMEyukarıdaki ile değiştirin id_rsa(özel anahtarın bir .pubuzantısı YOKTUR )


Not, "Ubuntu" yanlış
yazdınız

4

Yararlı iplik ve masaya çok yeni getirmiyorum. Attığım adım, Maxime'in işaret ettiği açıklamanın bir parçası ama bazıları göz ardı edebilir. Bölüm ssh aracısına SSH anahtarınızı ekleme bölümüdür .

Daha önce ssh-key'imi oluşturmuştum ama yeniden başlattıktan sonra kendi depolarımdan birini klonlayamadım.

Klonlamak için ssh-agent'ı başlatmak ve bu aracıya özel anahtar eklemek zorunda kaldım.

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

3

git cloneWindows komut satırından komut çalıştırırken de aynı sorunla karşılaştım . Ancak komut Git Bash'den başarıyla çalışır .


3

Benzer bir sorun yaşadım. Ssh anahtarlarını değiştirdim ve yeniden başlattım ve diğer tüm 'n' çözümlerini denedim. Ama asıl sorun benim gitlab varsayılan protokolümüz ssh'den https'ye değiştirildi.

uzak URL'yi

git remote -v

uzak URL'yi değiştir

git remote set-url origin https://URL

Mükemmel, ssh yapılandırmamıza gerek yok.
Rohit Parte

Ben de aynısını yapmak zorundaydım. Bu durumda ssh anahtarı benim için çalışmadı
Dani

ölümcül: ' bitbucket.org:xxxxxx/xxxxxxxxt ' adresine erişilemiyor : Bağlantı noktası numarası 'r' ile sona erdi
nosequeweaponer

2

Hepsi başarısız olursa, bende olduğu gibi, GIT'i kaldırın, yeniden yükleyin. Bazı nedenlerden dolayı bu giderilir.

PS

  1. SSH genel anahtarlarında yeni Anahtarlar ve Güncelleme yapmayı denedim
  2. Ayrıca tüm anahtarları silmeyi denedi ve yeni bir anahtar oluşturmaya çalıştı.
  3. Ve HAYIR, .gitconfig'imle ilgili hiçbir sorun yok

2

hubcli aracı için düzeltme :

  • git config --global hub.protocol https uzun vadede
  • git remote add OOPS https://github.com/isomorphisms/go.git&& git push OOPSanında düzeltme için

Bu hata, hubkomut satırı aracıyla yanlış varsayılan hub.protocolgit-config değeri nedeniyle oluşur . Depoları

git://github.com/schacon/ticgit.git

Github'un aslında kabul ettiği şey yerine https://github.com/schacon/ticgit.git.


Okuma LESS=+/"HTTPS instead" man hub, yukarıdaki "uzun vadeli düzeltme" komutunun nereden geldiğini açıklayacaktır.


Bu benim günümü kurtardı!
Jay Lee

1

Klonlama yaparken benzer bir sorunum vardı [HATA: İzinim reddedildi (publickey). ölümcül: Uzak depodan okunamadı. Lütfen doğru erişim haklarına sahip olduğunuzdan emin olun .. vb]

- Benim durumumda bitBucket / UBUNTU14.04 kullanıyordum, ama ALREADY daha önce oluşturduğum bir dizi anahtar dosyaya sahipti ve dosyaların adını değiştirmiştim. Ben sadece COPIED standart id_rsa & id_rsa.pub adı biçimi dosyaları. Daha sonra komutu dışarı sorunu ile yeniden çalıştırdım.

OBTW : Ben de HTTP stil klonunu kullanarak şifre istemi kullanabilirsiniz.


0

Linux'ta da benzer bir sorun yaşadım. Github sunucusuna giriş yapıp bir konuşlandırma anahtarı oluşturarak sorunu çözdüm. Havuz ayarları altında. Ardından, genel anahtarımı kopyaladım ve yapıştırdım (genellikle ~ / .ssh / id_rsa.pub'dadır, ancak yapılandırmanız farklı olabilir). Bu tuşa yazma erişimi vermek için bir onay kutusu vardır. Üzerine tıklayın (yalnızca dağıtmak için git'i kullanmıyorsanız, bu durumda üzerine tıklamayın).


0

Aynı hatayla karşılaştım. Benim çözümüm ssh-agent'ım uzak ssh anahtarıyla senkronize olmadığı için çıkış yapmak ve tekrar giriş yapmaktı.

Herhangi birinin diğer cevapların durumları için geçerli olmadığını görmesi durumunda bunu buraya eklemek.


0

Gitlab için ssh kurarken aynı sorunla karşı karşıyaydım. Zaten için ssh var githubve üzerine yazamadım. Benim için işe yarayan adımlar:

  1. Yeni yolla SSH oluşturun ve ssh listesine ekleyin ssh-add /path/to/new/id_rsa.
  2. Adlı bir dosya oluşturun configiçinde ~/.ssh/kullanılmıştır. Ben kullandım vi ~/.ssh/config/.
  3. Bunu yeni oluşturulan dosyaya ekle

# GitLab.com server Host gitlab.com RSAAuthentication yes IdentityFile /path/to/new/id_rsa

  1. Kaydet ve çık.

Bundan sonra terminali yeniden başlatın ve itmeyi deneyin, çalışmalıdır


0

Bir Çekme İsteği göndermek için açık kaynaklı projeleri klonlamak istiyorsanız:

Açık kaynak kodlu bir projeyi klonlamak istedim, böylece bazı talepler gönderebildim. Sorun, projenin sahibinden izin almamdı. Ne olursa olsun, niyetim bir PR sunmak olduğundan, burada geçerli bir alternatif var:

Çözümüm:

  1. Çatal Deposu

Çatal Repo

  1. Sonra çatal deponuzdan klonlayın. Çatallı Repo'dan klonlama

  2. Özellikleriniz üzerinde çalışın ve ardından bir çekme isteği gönderin.


0

Ssh anahtarınızı özel anahtarlığınıza eklemeyi deneyebilirsiniz. Benim için çalıştı

ssh-add -K ~/.ssh/[your-private-key]

"bilinmeyen seçenek - K"
Jiří Doubravský

0

Çözüm: Sunucuda cat ~ / .ssh / id_rsa.pub dosyasını kopyalamaya veya bu sayfadan aktarmaya çalışıyorsunuz GitHub'a, ayarlar, SSH ve GPG Anahtarları , Yeni SSH anahtar yapıştırma anahtarına gidin.


0

Bu hata mesajının birçok farklı nedeni olduğunu görüyorum. Zaten tamamen ssh vb ile çalışan ve aynı sunucuya, ancak diğer depoya bağlanan biri yanında yerel olarak başka bir depo kurmaya çalışırken aynı hatayla karşılaştım. Burada hiçbir yanıt bulunamamıştır, ama bunu anladım. Ben de gönderiyorum. Umarım birine yardım eder.

git remote add origin git@git.ourserver.com:teamalpha/repositorytwo.git

0

bu cevapların hiçbiri yardımcı olmazsa ve

  1. Windows kullanıyorsun
  2. Anahtarınızı Putty ile oluşturuyorsunuz veya PC'nize Putty'yi yüklediniz
  3. anahtarınızı CMD veya PowerShell ile oluşturursunuz

Deneyin

  1. anahtarlarını sil
  2. Git Bash için pencerelerde arama yapın, ardından Git Bash komut satırı ile yeni bir anahtar oluşturun
  3. çevrimiçi Repo'nuza ortak anahtar ekleyin

Sonra, git klonundan sonra bulacaksınız ve onaylamak için evet yazın, klonlamaya başlamalıdır


-2

Aptalca olabilir ama bize oldu:

Bitbucket ve Sourcetree kullanıyorsanız ve klon URL'sini yeni repo iletişim kutusuna kopyalayıp yapıştırırsanız, çekerken veya iterken aynı hatayı gösterir.

URL'den önce 'git clone' öğelerini sildiğinizden emin olun.

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.