GitHub Hata Mesajı - İzin verilmedi (publickey)


701

Bu hatayı gören ve ne yapacağını bilen var mı?

Terminali kullanıyorum, kökteyim, GitHub deposu var ve şimdi ne yapacağımı bilmiyorum.

> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

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



1
.Ssh ve yetkili anahtarlarla ilgili izin sorunları olabilir. Ssh oldukça katı, google.
K - SO'da toksisite artıyor.

Olası yinelenen
bitbucket

@bdukes yanıtı gibi burada https kullanan komut ve Windows çalışacak, örneğin: "PS C: \ xampp \ htdocs> git clone github.com/algolia/instant-search-demo.git "
Dung

Yanıtlar:


665

GitHub sizi doğrulayamıyor. Dolayısıyla, bir SSH anahtarıyla kurulum yapmıyorsunuz, çünkü makinenizde bir tane ayarlamadınız veya anahtarınız GitHub hesabınızla ilişkili değil.

SSH anahtarlarıyla uğraşmaktan kaçınmak için SSH / git URL yerine HTTPS URL'sini de kullanabilirsiniz. Bu GitHub'ın önerilen yöntemidir .

Ayrıca, GitHub'ın özellikle bu hata mesajı için bir yardım sayfası vardır ve kontrol edebileceğiniz her şeyi daha ayrıntılı olarak açıklar.


53
Bu hata GitHub'a özel değildir. BitBucket ile aynı hatayı alıyorum ve nasıl çözüleceğine dair
başımı kaşıyorum

32
Yardım bölümü, deponuzun hangi anahtarı kullandığını ayıklamanıza yardımcı olmasıssh -vT git@github.com için Github yardım sayfasından kullanıyor. Cevabınıza eklemenizi öneririm.
MaximeBernard

25
SSL yerine HTTPS kullanmanın yükseltilmesi biraz hayal kırıklığı yaratıyor. SSH çok daha uygundur. Yukarıdaki @MaximeBernard'ın önerisi sorunu benim için çözdü: GIT .ssh dizini için doğru yere bakmıyordu. Kullanımı ssh -vT git@github.comneden çalışmadığına dair birçok bilgi sağlar.
Christophe

1
Yukarıdaki yorumuma göre, üçüncü bir seçenek, komutun ssh tuşlarına (örn. root olarak çalışan) başka bir hesaptan gönderilmesidir.
David LeBauer

1
@ Theapache64'in belirttiği gibi: Mac kullanıyorsanız ve zaten bir ssh anahtarı oluşturduysanız "ssh-add" aslında eksik olan şey olabilir. Benim için çalıştı.
Dijital Empermanence

78

~ / .Ssh dizininizde bir yapılandırma dosyası oluşturdunuz mu? Bunun gibi içeriğe sahip olmalıdır:

Host github.com 
 IdentityFile ~/.ssh/github_rsa

Github_rsa adında bir ssh anahtarı oluşturduğunuzu varsayarsak

ve GitHub'a yükledi ...

NOT: ~ / .ssh / dizininizde 1'den fazla anahtar (2 ve daha fazla) varsa, bu açık yapılandırma yolunu izlemelisiniz. Anahtarı bu şekilde belirtmezseniz, sırayla ilk anahtar alınır ve github kimlik doğrulaması için kullanılır, bu nedenle anahtar dosya adına bağlıdır.


1
Ssh-anahtarını oluşturmuştum ve oldukça uzun bir süre sorunsuz çalışabildim. Bir güzel gün (muhtemelen yeniden başlatmadan sonra), çalışmayı durdurdu, oysa anahtar github'da ve yerel sistemimde sağlamdı. Etki alanına anahtar eşlemesini belirterek "yapılandırma dosyasını" ekledim. Yukarıda igor-ganapolsky-answer bölümünde verilen ayrıntılar. İyi çalışıyor !
parasrish

3
Bu gerçekten sorunumu çözdü! Çok teşekkürler! Ama bir sorum var. Yönteminizi kullanmadan önce, ssh -T git@github.comdoğru yanıt verirken git push -u origin mastersorudakiyle aynı hatayı verir. Neden doğru bir şekilde bağlanabiliyorum ama zorlayamıyorum ya da ondan getiremiyorum?
Eden Harder

@EdenHarder Aynı sorunla karşı karşıyayım. Buna bir cevap buldunuz mu?
Vreddhi Bhat

64

Bu sorunu biliyorum. Ssh anahtarı ekledikten sonra, ssh aracısına da ssh anahtarını ekleyin (resmi dokümanlardan )

ssh-agent -s
ssh-add ~/.ssh/id_rsa

Her şey yolunda gittikten sonra, git önce uygun anahtarı görüntüleyemedi.


5
Vali! MacOS X üzerinde çalıştım.
stillatmylinux

9
Kimlik doğrulama aracınızla bağlantı açılamadı.
Mona Jalal

Bunu çalıştırmayı deneyin: evalssh-agent -s
Vincent acenteleri

@MonaJalal kullanımıssh-add ~/.ssh/github_rsa
Nag 'tintinmj'

Mükemmel. çalışıyor. Teşekkür ederim. 👌
Erkam KUCET

62

Bir SSH anahtarı oluşturmanız (varsa) ve genel anahtarı Github hesabınızla ilişkilendirmeniz gerekir. Github'un kendi belgelerine bakın .


2
Bunun için teşekkürler ... GitHub'dan bir SSH anahtarı aldım. Şimdi terminaldeki ikisini ilişkilendirmek için hangi komut kullanılır? Teşekkürler!
webwrks

2
Bunun için bir terminal komutu yoktur. Cevabımda bağladığım belgelerdeki 4. adıma bakın.
cdhowie

Depoyu HTTPS kullanarak klonladım. Bu durumda SSH anahtarı oluşturmam gerekir mi?
Pabitra Dash

HTTPS SSH anahtarları kullanmaz.
cdhowie

51

Bu bana oldu. Nedense benim farkında olmadan kökenim berbat oldu:

Ayarlarınızın hala doğru olup olmadığını kontrol edin

git remote -v

url'nin ssh: //git@github.com/YourDirectory/YourProject.git gibi bir şey olması gerekir; git@github.com adresini görmüyorsanız şunu kullanın:

git remote set-url origin git://github.com/YourDirectory/YourProject.git

doğru ayarlamak için. İsterseniz, deponuzun ayarlar panelindeki Birincil Uzak Havuz URL'sini kontrol etmek ve ayarlamak için github uygulamasını kullanabilirsiniz.


9
URL'lere dikkat edin. Https ve ssh arasında farklılık gösterirler ve bu sayfadaki yayınlar bunu netleştirmez. Her git projesinin proje kök dizininde bir .git / config dosyası vardır. Orada uzaktan ve şube bilgilerini ayarlayabilirsiniz. Url = https: için uzaktan ayarlama github.com/<yourGitUserName>/<yourGitProject>.git = git@github.com url: / <yourGitProject> .git olması yanlış url neden <yourGitUserName> + ssh git için olsa ortak anahtar izni, muhtemelen çok açık bir hata olmayan bir hatayı reddetti.
darKoram

benim durumum için final sadece parçası ile çalışır: git remote set-url origin github.com/your_directory/your_project.git
rld

19

GitHub'ı SSH üzerinden bağladığınızı varsayarsak, bunu onaylamak için aşağıdaki komutu çalıştırabilirsiniz.

$git config --get remote.origin.url

Eğer bir sonuç aşağıdaki formatı alırsa git@github.com: xxx / xxx.github.com.git, o zaman aşağıdakileri yapmalısınız.

Bir SSH anahtarı oluşturun (veya mevcut olanı kullanın). eğer bir anahtarınız varsa, ssh aracısına (adım 2) ve GitHub hesabınıza (adım 3) anahtarınızı eklemeniz yeterlidir.

aşağıda SSH anahtarı olmayanlar içindir.

Adım 1 Genel / özel rsa anahtar çifti oluşturma.

$ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

SSH anahtarının nereye kaydedileceğini ve hangi parolayı kullanmak istediğinizi onaylamanız istenir.

Adım 2 Anahtarınızı ssh-agent'a ekleyin

  • Ssh-agent'ın etkin olduğundan emin olun

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

  • SSH anahtarınızı ssh-agent'a ekleyin:

    $ssh-add ~/.ssh/id_rsa

Adım 3 SSH anahtarınızı hesabınıza ekleyin

$sudo apt-get install xclip

$xclip -sel clip < ~/.ssh/id_rsa.pub

Ardından kopyalanan anahtarı GitHub'a ekleyin

Git Ayarlar -> SSH tuşları (Kişisel ayarlar yan bar) -> SSH anahtarı ekle -> formu doldurun (anahtar panoda, sadece kullanım ctrl + v) -> Anahtar ekle

Yukarıdaki adımları uyguladıktan sonra izin sorununu çözmelisiniz.

Referans Bağlantısı: SSH anahtarları oluşturma .


Bu çözüm ubuntu üzerinde, $ ssh-add /root/.ssh/id_rsa çalıştı
Feras

Bu da benim çevremdeki garip bir karışıklığı çözdü, önereceğim bir değişiklik xclip bağımlılığından kaçınmak, sadece kullancat ~/.ssh/id_rsa.pub
Pogrindis

19

İlk olarak, bilgisayarınızdaki mevcut ssh anahtarlarını kontrol etmemiz gerekiyor. Terminal'i açın ve çalıştırın:

ls -al ~/.ssh

#or

cd ~/.ssh
ls

ve bu .ssh dizininizdeki dosyaları listeler

Ve nihayet gördüğünüze bağlı olarak (benim durumumda):

 github_rsa  github_rsa.pub known_hosts

Sadece RSA'nızı kurmayı deneyin ve umarım bu "git push origin" sorunlarınızı çözecektir

$ ssh-keygen -lf ~/.ssh/github_rsa.pub

NOT: RSA sertifikaları anahtar eşleştirilmiştir, bu nedenle özel ve genel bir sertifikaya sahip olursunuz, özel, github'a ait olduğu için (bu durumda) sizin için erişilebilir olmayacaktır, ancak bu hata oluştuğunda genel olarak eksik olabileceğiniz kişidir. (en azından benim durumumdu, github hesabım veya repo bir şekilde berbat oldu ve daha önce oluşturulan ortak anahtarı "bağlamak" zorunda kaldım)


SHABu komuttan çıktıyı github'a kopyalamak zorunda mıyım?
IgorGanapolsky

Hayır, yalnızca "ssh-keygen -lf ~ / .ssh / <YOUR_GITHUB_RSA_FILE.pub>"
d1jhoni1b

bu yüzden ".ssh dizininizdeki dosyaları listeler" komutunu ekledim ... böylece anahtarınızı hangi dosyadan (ssh-keygen) çıkaracağınızı bileceksiniz. RSA sertifikalarının anahtar eşleştirildiğini unutmayın, bu nedenle özel ve genel bir sertifikaya sahip olacaksınız, özel, github'a ait olduğu için (bu durumda) sizin için erişilebilir olmayacaktır, ancak bu hata oluştuğunda genel olarak eksik olabileceğiniz kişidir ( en azından benim durumumdu, benim github hesabı veya repo bir şekilde berbat var ve ben daha önce oluşturulan, genel anahtar "bağlantı" zorunda kaldı)
d1jhoni1b

$ ssh-keygen -lf ~ / .ssh / github_rsa.pub /home/mona/.ssh/github_rsa.pub: Böyle bir dosya veya dizin yok
Mona Jalal

"Böyle bir dosya veya dizin yok" anlamına gelir bu dosya adı veya yolu yok ... ls -al ~ / .ssh yürütürken ne elde edersiniz?
d1jhoni1b


11

Başka bir çözüm :

SSH anahtarlarını oluşturun, yazın ssh-keygen -t rsa -C "your_email@example.com". Bu hem id_rsa hem de id_rsa.pub dosyalarını oluşturur.

Yerel bilgisayardaki id_rsa'yı ssh listesine ekleyin: ssh-add ~/.ssh/id_rsa.

Anahtarları oluşturduktan sonra pubkey'i kullanarak şunları elde edin:

cat ~/.ssh/id_rsa.pub 

şöyle bir şey elde edersiniz:

cat ~/.ssh/id_rsa.pub 

ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAACAQCvMzmFEUPvaA1AFEBH6zGIF3N6pVE2SJv9V1MHgEwk4C7xovdk7Lr4LDoqEcqxgeJftwWQWWVrWWf7q9qCdHTAanH2Q5vx5nZjLB+B7saksehVOPWDR/MOSpVcr5bwIjf8dc8u5S8h24uBlguGkX+4lFJ+zwhiuwJlhykMvs5py1gD2hy+hvOs1Y17JPWhVVesGV3tlmtbfVolEiv9KShgkk3Hq56fyl+QmPzX1jya4TIC3k55FTzwRWBd+IpblbrGlrIBS6hvpHQpgUs47nSHLEHTn0Xmn6Q== user@email.com

bu anahtarı (değer) kopyalayın ve github.com adresine gidin ve ayarın (ssh ve pgp anahtarı) altına genel anahtarınızı ekleyin.


10

Kendi deponuza erişmiyorsanız veya klonlanmış bir deponun içinde klonlama durumunda (bazı "git submodule ..." komutlarını kullanarak):

Deponuzun ana dizininde:

$ ls -a

1. ".gitmodules" i açın, şöyle bir şey bulacaksınız:

[submodule "XXX"]
    path = XXX
    url = git@github.com:YYY/XXX.git

Olmak son satırı değiştirin HTTPS Eğer çekme gereken deponun:

[submodule "XXX"]
    path = XXX
    https://github.com/YYY/XXX.git

".Gitmodules" kaydedin ve alt modüller için komutu çalıştırın ve ".git" güncellenecektir.

2. ".git" dosyasını açın, "config" dosyasına gidin, şöyle bir şey bulacaksınız:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/YYY/XXX.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[submodule "XXX"]
    url = git@github.com:YYY/XXX.git

Olmak son satırı değiştirin HTTPS Eğer çekme gereken deponun:

    url = https://github.com/YYY/XXX.git

Yani, bu durumda, ana sorun sadece url ile. Herhangi bir deponun HTTPS'sini artık depo sayfasının üstünde bulabilirsiniz.


9

bu benim için çalıştı:

1- tüm kökenleri kaldırın

git remote rm origin  

(bkz. https://www.kernel.org/pub/software/scm/git/docs/git-remote.html )

* remote: "Dallarını izlediğiniz depo kümesini (" uzaktan kumandalar ") yönetir.

* rm: "Adlandırılmış uzaktan kumandayı kaldır. Uzaktan kumandanın tüm uzaktan izleme dalları ve yapılandırma ayarları kaldırılır."

2- Tümünün kaldırıldığını kontrol edin:

git remote -v  

3- yeni orijinli master ekle

git remote add origin git@github.com:YOUR-GIT/YOUR-REPO.git

Hepsi bu kadar millet!


1
Bu komutlar sayesinde github kullanıcı adı ve hesap şifresini sormaya başlıyor, bundan sonra terminaldeki türe göre github bağlantısına kolayca itebilirim: git push -u origin master
Noha Salah

8

ssh-add -lGithub hesabınızdaki SSH anahtarları listesinde bulunan bir SSH anahtarının parmak izini gösterdiğinden emin olun .

Çıktı boşsa, ancak github hesabınızla çalışan özel bir SSH anahtarınız olduğunu biliyorsanız ssh-add, bu anahtarda çalıştırın (içinde bulunur ~/.ssh. id_rsaVarsayılan olarak adlandırılmıştır , bu nedenle muhtemelen çalıştırılırsınız ssh-add id_rsa).

Aksi takdirde, bir SSH anahtar çifti oluşturmak için bu talimatları uygulayın.


8

Daha önce php projemden biri için github kullanıyordum. Github kullanırken, https yerine ssh kullanıyordum. Benim etmişti makine kurmak gibi ve ben taahhüt ve kod itmek için kullanılan her zaman, bana rsa anahtarı şifresini rica ediyorum.

Birkaç gün sonra php projesi üzerinde çalışmayı bıraktım ve rsa şifremi unuttum. Son zamanlarda bir java projesi üzerinde çalışmaya başladım ve bitbucket'e geçtim. Şifreyi unuttuğumdan ve kurtarmanın bir yolu olmadığından, sanırım yeni proje için https (önerilen) protokolünü kullanmaya karar verdim ve aynı hatayı soruda sordum.

Nasıl çözdüm?

  1. Gitime ssh yerine https kullanmasını söylemek için bu komutu çalıştırın:

    git config --global url."https://".insteadOf git://
    
  2. Varsa uzaktan kumandayı çıkarın

    git remote rm origin
    
  3. Her şeyi yeniden yap git init için git push ve işe yarıyor!

Not: Hata ayıklama işlemi sırasında ssh'yi makinemden kaldırdım, kaldırmanın sorunu çözeceğini düşünüyorum. Evet biliyorum!! :)


İnsanların https'ye doğru yönlendirilmesinin iyi bir fikir olduğunu düşünmüyorum, aynı zamanda ssh'ın çalışması gerekiyordu. Dahası, bunun kurumsal bir vekilin arkasındaki insanlar için işe yaraması pek olası değildir.
Igor Stoppa

8

Uzak depoya https erişimine ssh erişimini değiştirirseniz sorun çözüldü:

git remote set-url origin https_link_to_repository

git push -u origin master

5

Sanırım sizin için en iyi cevaba sahibim, git uygulamalarınız kök kullanıcı dizininde id_rsa.pub

/home/root/.ssh/id_rsa.pub

Bu nedenle /home/alan_adiniz/.ssh/id_rsa.pub anahtarınız git tarafından okunamıyor. Bu yüzden /home/root/.ssh/ anahtarını oluşturmanız gerekir

$ sudo su
$ ssh-keygen
$ cd ~/.ssh
$ cat id_rsa.pub

Ardından anahtarı github hesabınıza kopyalayın. Benim için çalıştı. Deneyebilirsin.


Bu beni aradığım cevaba bıraktı. Ben kudo ile alışkanlıktan klon koştum, bu yüzden yanlış kimlikler arıyordu. Sudo aldı ve benim klon iyi koştu.
Taekahn

4

Zaten bir SSH anahtarı oluşturduysanız ve hala hatayı alıyorsanız, bunun nedeni, kullanıcıya klonladığınız klasörü okuma ve yazma izinleri vermeniz gerektiğidir. Bunu yapmak için sudo chmod 777 <your_folder_name_here>". Tabii ki, bu bir SSH anahtarı oluşturduktan sonra ve hala bu hatayı alıyorsunuz. Umarım gelecekteki kullanıcılara yardımcı olur.

Düzenle

Buna eklemek için git bash kullanıyorsanız Windows'ta admin kullanın


Bu. Bu da soruna neden olabilir.
KevinO

1
Bu benim sorunum, ama bir klasörde 777 izinleri ayarlanmasını tavsiye etmem. Benim durumumda klasör kök kullanıcıya aitti ve root olmayan kullanıcı hesabıma erişim sağlamam gerekiyordu. Bunu şöyle yaptım:sudo chown -R $USER:$USER <your_folder_name_here>
David

@David, bunu da tavsiye ederim. 777 oldukça kurnaz ve güvenli değil.
Kevin

3

Son zamanlarda aynı sorunu yaşadım. Hemen bir düzeltmeye ihtiyacınız varsa bu yardımcı olabilir, ancak sisteminizi her yeniden başlattığınızda bunun yapılması gerekir.

Terminalden çalıştırın: ssh-add ~/.ssh/id_rsa

Sistem şifrenizi girin, işe yarayacaktır.


3

Bulgularımdan bazılarını eklemek istiyorum:

Kullanıyorsanız GitBash, SSH anahtarının kayıtlı olduğundan emin olun ~/.ssh/id_rsa.

Varsayılan olarak, SSH anahtarı için varsayılan yol GitBasharar ~/.ssh/id_rsa.

Dosya adı bile id_rsaönemlidir. SSH anahtarınızı başka bir dosya adına veya yola kaydederseniz, Permission Denied(publickey)hatayı atar .


3

Tamam, bunun için birkaç çözüm var, bazıları zaten belirtilmiş olabilir, ancak onları bir arada tutmak için:

  • anahtarların bulunduğundan emin olun, varsayılan olarak başka bir ~ / .ssh / klasörü, yani id.rsa ve id.rsa.pub

  • anahtarların doğru izinlere sahip olduğundan emin olun, chmod'u çalıştırabilirsiniz:

    chmod 600 ~ / .ssh / id_rsa

    chmod 644 ~ / .ssh / id_rsa.pub

  • ortak anahtarınızın (id_rsa.pub) içeriğinin uzak havuz yapılandırmasında yüklenenle eşleştiğinden emin olun

  • Son olarak ssh aracısı ile ilgili sorunları giderin: ssh-add

Biraz daha bilgi: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html


Ssh anahtarımı FAT32 olarak biçimlendirilmiş bir USB sürücüsü kullanarak bir bilgisayardan diğerine kopyalamıştım. Bu, dosyaların izinlerini değiştirdi. Ubuntu'da, gerektiğinde otomatik olarak SSH şifresi sorulmaya alışkınım, ancak chmodtarif ettiğiniz gibi koşana kadar bu sessizce gerçekleşmedi . Teşekkürler.
lydell

1

Mac için GitHub kullanıcı arayüzünü kullanıyorsanız, oturum açtığınızdan emin olmak için tercihleri ​​kontrol edin.


1

'Git push' sırasında aynı hatayı alıyordum. Müşteri tarafında iki kökenim vardı. Birini çıkardım, sonra işe yaradı.


1

giriş yapmak için Https url'sini kullanabilirsiniz

Eğer sadece şifre sorarsanız git push dedi ssh url ile giriş yapmaya çalışıyorum sanırım http url kullandığınız ssh.better üzerinden bağlanma düşünün.


1

Ayrıca ubuntu'da, BitBucket ayarlarında zaten SSH anahtarı girilmiş olsa da, bu sorunu aldım. Nedeni şuydu:

sudo git push origin master

Neden olduğundan emin değilim, ama kullanarak çözüldü

git push origin master

Hiç sudo kullanılmadı.


1

Benim için bunu denedim -

eval "$(ssh-agent -s)"

sonra koşarım

ssh-add ~/.ssh/path-to-the-keyfile

ve anahtarı üretmek için

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

bu anahtar çiftini oluşturur (Genel ve özel).

daha fazla bilgi için bu anahtarı github'a kaydedebilirsiniz . GitHub hesabınıza yeni bir SSH anahtarı ekleme

Umarım başkalarına yardımcı olur :)


1

@Batman'a benzer bir sorun yaşıyordum. Ancak, bunu / usr / local / src / projectname altında çalıştırdığım için sudo olmadan çalıştırmak bir seçenek değildi.

Ortamı korumak için -E bayrağını ekleyin (~ / .ssh / path).

$ sudo -E git clone git@your_repo

Adam sudo'dan:

-E, --preserve-env Kullanıcının mevcut ortam değişkenlerini önceden sunmak istediğini güvenlik ilkesini belirtir. Kullanıcı çevre koruma iznine sahip değilse güvenlik politikası bir hata verebilir.


1

Bunun gerçekleşeceği senaryo, deponuzu oluşturduktan sonra GitHub talimatlarını izlemenizdir. Git, uzaktan kumandanızı böyle bir şeyle eklemenizi söyleyecektir.

git remote add origin git@github.com:<user>/<project>.git

<> İfadesini hesabınızla ilgili değerlerle değiştirin.

Çözüm, .gitsoneki kaldırmaktır . Uzaktan kumandayı aşağıdaki gibi ekleyin:

git remote add origin git@github.com:<user>/<project>


1

tl; Dr.

içinde ~/.ssh/configput

PubkeyAcceptedKeyTypes=+ssh-dss

Senaryo Bir touchbar MacBook Pro'da olduğu gibi openSSH> 7'nin bir sürümünü kullanıyorsanızssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0

Ayrıca anahtarınızı Github'a koyduğunuz eski bir Mac'iniz vardı, bir id_dsa anahtarı kullanıyor olabilirsiniz. OpenSSH v7 varsayılan olarak bu DSA anahtarlarının kullanımını içermez (buna dahil ssh-dss), ancak yine de aşağıdaki kodu~/.ssh/config

PubkeyAcceptedKeyTypes=+ssh-dss

Benim için çalışan kaynak bu Gentoo bülteni

Artık en azından GitHub'ı kullanabilir ve anahtarlarınızı RSA'ya sabitleyebilirsiniz.


1

git pullUzak bir ana bilgisayarda kullanarak benzer bir hata mesajına çözüm ararken bu sayfayı buldum :

$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

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

Yerel makinemden uzak ana makineye üzerinden bağlandım ssh -AY remote_hostname. Bu OP'nin sorusuna bir çözüm değildir, ancak bu sayfaya rastlayan diğerleri için yararlıdır, bu yüzden burada yayınlayın.

Benim durumumda, git pullyerel makinemde iyi çalıştığını unutmayın (yani, ssh anahtarı ayarlanmış ve GitHub hesabına vb. Eklenmiştir). Sorunumu ~/.ssh/configdizüstü bilgisayarıma ekleyerek çözdüm:

Host *
     ForwardAgent yes

Sonra uzak ana bilgisayara yeniden bağlandım ssh -AY remote_hostnameve git pullşimdi çalıştım. Yapılandırmadaki değişiklik, ssh anahtar çiftimi yerel makinemden herhangi bir ana bilgisayara iletmeyi sağlar. Bu ssh oturumunda aslında iletme -Aseçeneği ssh. Daha fazla ayrıntıyı burada görebilirsiniz.


0

Belki ssh-ajanınız etkin değil Deneyebilirsiniz

  1. Git indir

http://git-scm.com/

  1. Yükle

  2. Ssh-agent'ı etkinleştir

C: \ Program Dosyaları \ Git \ cmd

Başlangıç ​​SSH-madde


0

GitHub hesabı kontrol panelinize gidin, proje havuzunuzu bulun, Ayarlar sekmesini tıklayın - Anahtarları dağıt'ın altında SSH anahtarınızı eklemeniz gerekir. Terminal'i açın ve şunu yazın:

cat ~/.ssh/id_rsa.pub | pbcopy 

Bu işlem anahtarı id_rsa.pub dosyanızdan kopyalar. GitHub panosuna geri dönün, yapıştırın, Anahtar Ekle'yi tıklayın ve hepsi bu kadar.

Aynı çözüm Bitbucket hesapları için de geçerlidir.

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.