gpt4 book ai didi

python - Ansible 与 Github : Permission denied (Publickey)

转载 作者:太空狗 更新时间:2023-10-29 13:42:59 25 4
gpt4 key购买 nike

我正在尝试了解 Ansible 的 GitHub ssh 配置(我正在研究 Ansible:启动和运行一书)。我遇到了两个问题。

权限被拒绝(公钥) -当我第一次运行 ansible-playbook mezzanine.yml 剧本时,我的权限被拒绝:

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

好吧,很公平,我看到有几个人遇到过这个问题。所以我跳到关于使用 SSH 运行 Git 的附录 A,它说要运行 ssh-agent 并添加 id_rsa 公钥:

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

输出:Identity Added我运行 ssh-agent -l 来检查并得到长字符串:2048 e3:fb:... 但我得到了相同的输出。因此,我查看了关于 ssh key 生成和故障排除的 Github 文档,其中建议更新主机上的 ssh 配置文件:

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

但这仍然提供相同的错误。所以在这一点上,我开始认为这是我的 rsa 文件,这导致了我的第二个问题。

key 生成问题 - 我试图生成一个额外的证书以供使用,因为 Github 测试引发了另一个“权限被拒绝(公钥)”错误。

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

我从头开始按照 Github 说明生成了一个具有不同名称的新 key 。

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

我没有输入密码并将其保存到名为 git_rsa.pub 的 .ssh 文件夹中。我运行了相同的测试并得到以下结果:

$ 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).

我检查了权限并对文件执行了 chmod 700,但我仍然得到 Permission denied (publickey)。我什至试图将 key 输入我的 Github 帐户,但首先收到一条消息,指出 key 文件需要以 ssh-rsa 开头。所以我开始研究和黑客攻击。开始只是在文件中输入长字符串(以--BEGIN PRIVATE KEY--开头,但失败后我省​​略了那部分);然而,Github 不接受它,说它是无效的。

这是我在 YAML 文件中的 Ansible 命令:

- 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

这是我配置了 ForwardAgent 的 ansible.cfg 文件:

[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

盒子是使用 Mac 操作系统的 Ubuntu Trusty64。如果有人能给我提供文件权限和/或 Github key 生成的线索,我将不胜感激。

最佳答案

我怀疑 key 权限问题是因为您将公钥而不是私钥作为参数传递给“ssh -i”。试试这个:

ssh -i ~/.ssh/git_rsa -T git@github.com

(请注意,它是 git_rsa 而不是 git_rsa.pub)。

如果可行,请确保它在您的 ssh-agent 中。添加:

ssh-add ~/.ssh/git_rsa

验证:

ssh-add -l

然后通过执行以下操作检查 Ansible 是否尊重代理转发:

ansible web -a "ssh-add -l"

最后,通过以下操作检查您是否可以通过 ssh 访问 GitHub:

ansible web -a "ssh -T git@github.com"

您应该会看到如下内容:

web | FAILED | rc=1 >>
Hi lorin! You've successfully authenticated, but GitHub does not provide shell access.

关于python - Ansible 与 Github : Permission denied (Publickey),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33656916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com