Github ile uyumlu: İzin engellendi (Publickey)


3

GitHub ssh yapılandırmasını Ansible ile anlamaya çalışıyorum (Ansible: Up & Running kitabı üzerinde çalışıyorum). İki sorunla karşılaşıyorum.

İzin reddedildi (publickey) - Çalma kitabını ilk defa çalıştırdığımda ansible-playbook mezzanine.ymlreddedildi:

failed: [web] => {"cmd": "/usr/bin/git ls-remote '' -h refs/heads/HEAD", "failed": true, "rc": 128}
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

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

msg: Permission denied (publickey).
fatal: Could not read from remote repository.

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

FATAL: all hosts have already failed -- aborting

Tamam, yeterince adil, birkaç insanın bu sorunu yaşadığını gördüm. Bu yüzden Git'i SSH ile çalıştırırken ek A'ya atladım ve ssh-agent'ı çalıştırıp id_rsa ortak anahtarını ekledi:

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

Çıktı: Kontrol etmek için Identity Addedkoştum ssh-agent -lve uzun ipi 2048 e3:fb:...aldım : Ama aynı çıktıyı aldım. Bu yüzden, Github docs'ları ssh anahtar nesillerindeki kontrol ettim ve sorun giderme ana makinemdeki ssh config dosyasını güncellemeyi önerdi:

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

Ancak bu hala aynı hatayı sağlar. Yani bu noktada, benim ikinci problemime yol açan rsa dosyam olduğunu düşünmeye başladım.

Anahtar Üretimi Sorunları - Github testi başka bir "İzin reddedildi (publickey)" hatası attığından, kullanmak için ek bir sertifika oluşturmaya çalıştım.

Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts.
Permission denied (publickey).

Github talimatlarını sıfırdan takip ettim ve farklı bir isimle yeni bir anahtar oluşturdum.

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

Bir parola girmedim ve onu git_rsa.pub adıyla .ssh klasörüne kaydettim. Aynı testi yaptım ve aşağıdakileri aldım:

$ ssh -i ~/.ssh/git_rsa.pub -T git@github.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/antonioalaniz1/.ssh/git_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: ~/.ssh/github_rsa.pub
Permission denied (publickey).

İzinleri kontrol ettim ve bir chmod 700dosya yaptım ve hala alıyorum Permission denied (publickey). Anahtarı Github hesabıma bile girmeye çalıştım, ancak önce bu anahtar dosyanın başlaması gereken bir mesaj aldım ssh-rsa. Bu yüzden araştırmaya ve hacklemeye başladım. Sadece dosyadaki uzun stringi girmeye başladım (--BEGIN PRIVATE KEY-- ile başladı, fakat başarısız olduktan sonra bu kısmı atladım); Ancak, Github, geçersiz olduğunu söyleyerek kabul etmiyor.

Bu, YAML dosyasındaki Ansible komutum:

- name: check out the repository on the host
  git: repo={{ repo_url }} dest={{ proj_path }} accept_hostkey=yes

  vars:
    repo_url: git@github.com:lorin/mezzanine-example.git

Bu benim ForwardAgent yapılandırılmış ansible.cfg dosyam:

[defaults]
hostfile = hosts
remote_user = vagrant
private_key_file = .vagrant/machines/default/virtualbox/private_key
host_key_checking = False

[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o ForwardAgent=yes

Kutu, Mac OS kullanan bir Ubuntu Trusty64'tür. Herhangi biri beni dosya izinleri ve / veya Github anahtar oluşturma konusunda ipucu verebilirse, minnettar olurum.


$ ssh -i ~/.ssh/git_rsa.pub -T git@github.comDiğer problemlerini bilmiyorum ama burada yanlış anahtar dosyasını kullanıyorsun. Özel bir anahtar dosyasının -iadını , yani .pub uzantısı olmayan dosyayı alır . Büyük olasılıkla ssh -i ~/.ssh/git_rsa ...
koşmalısınız

@Kenster Karışıklık için üzgünüm, ikisini de denedim, ancak izinleri reddedildi (publickey). Ben şimdi Github sorun giderme ile yeniden yapıyorum ve umarım bir şeyler bulmak için tekrar çalışıyorum.
Sandwich Heat

Yanıtlar:


2

Ben transport = paramikobenim, ansible.cfgfarklı bir hatayı düzeltmek için ancak ilgili sorunları neden olmak gibi görünüyor ForwardAgent=yes. Sadece nakliye kaldırıldı ve tekrar çalışıyor.


1
  1. ~/.ssh/Dir, ~/.ssh/configdosyayı yeniden düzenlemek gerekir . IdentifyFilegenel anahtarlar varsayılan adıyla ise gerekli değildir ( ìd_rsa.pub, id_ed25519.pub, id_dsa.pub)
  2. ansible.cfgDir'in içinde oyun kitabının bulunduğu bir dosya olup olmadığını kontrol edin (sizin * .yml dosyanız), bu varsayılan /etc/ansible/ansible.cfgyapılandırmanıza göre tercih edilir .
  3. İzinler ~/.ssh/id_rsaözel dosya içindir (benimki ile birlikte 0x600).

offtopic: "Kutu, Mac OS kullanan bir Ubuntu Trusty64" mü?!

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.