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.yml
reddedildi:
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 Added
koştum ssh-agent -l
ve 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 700
dosya 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.com
Diğer problemlerini bilmiyorum ama burada yanlış anahtar dosyasını kullanıyorsun. Özel bir anahtar dosyasının-i
adını , yani .pub uzantısı olmayan dosyayı alır . Büyük olasılıklassh -i ~/.ssh/git_rsa ...