- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试了解 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/
我只有一个PublicKey字符串,如何获取PublicKey指纹?我有一些想法形式 https://go-review.googlesource.com/c/crypto/+/32814 , 但我不
在使用 secp256k1 曲线执行椭圆曲线加密时,我注意到虽然代码和测试用例在 Android Studio IDE 上编译,但它们不会在 android 设备上编译,因为曲线未在移动设备使用的 j
我有一个 rsa.PublicKey,它由结构中的模数和公共(public)指数组成。我想验证用该 key 签名的 ssh.Signature,我想如果我有 ssh.PublicKey 我可以调用 V
我正在尝试将 PublicKey 转换为 String,但我不知道如何正确地进行。以下代码没有给我正确的 key ,那么如何转换呢? byte[] publicKeyBytes = userKeys.
我注意到核心 .NET 程序集具有 PublicKey = 00000000000000000400000000000000。不仅比 sn.exe 允许生成的那些更短(最少 384 位),而且它还有很
我已经使用命令 ssh keygen 创建了 ssh key 并且我已将公钥添加到我的 bitbucket 帐户,然后我也将 key 添加到了 ssh 代理,但是当我尝试使用 sourceTree 从
我尝试将现有项目从 github 存储库导入 aptana studio,但出现错误,提示权限被拒绝(公钥)。 fatal:远端意外挂断 我确保将 ssh 添加到我在 github 中的帐户。我还运行
我正在尝试以这种方式从字符串创建公钥: byte[] keyBytes = Base64.decode(publicKeyStr.getBytes("utf-8"), Base64.DEFAULT);
在 LDAP 服务器中,我以字符串格式存储了我的公钥。我必须比较从 LDAP 服务器检索到的值和用户证书的公钥。 我正在从 LDAP 检索字符串格式的“公钥”。通过以下方法,我得到了公钥格式的输出。
我正在使用 C# ECDiffieHellmanCng 类并使用 sample 中的代码发现了一个(在我看来很奇怪的)行为:任何项目中生成的每个公钥都是一样的!这是正确的行为吗? 例子: using
我正在使用 crypto lib ,遇到了一个问题:我需要将 PublicKey 类型转换为 byte[],因为它可以用私钥完成: privkey.D.Bytes() 我该如何解决这个问题? 最佳答案
我正在尝试创建一个将加密用户消息的应用程序。用户公钥需要作为字符串发布到服务器。我正在像这样生成 Android KyeStore PublicKey: public static Publi
我调用返回 2 个公钥(作为字符串)的 API,每个公钥由 512 位组成: 588506d0c604d8270ac4de9fdc520abe4779128ff5b7940d38fcd13d5e5fd
如果创建了一个新的 ssh key ,请将公钥复制并粘贴到 gitlab 项目,并在 ~/.ssh 中创建一个 conifg 文件... 我仍然无法克隆该项目(我不是所有者,但我被添加为用户) 这就是
我已经在 github 上为我的机器注册了 ssh key ,并通过键入 ssh git@github.com 验证它是否有效。接收认证成功的响应。 但是,当我尝试将机器上的源代码推送到我的 git
在尝试将 byte[] 数组转换为 PublicKey 时出现错误: Exception in thread "main" java.security.spec.InvalidKeySpecExcep
我想从 OpenSSL 获得与 Java PublicKey.getEncoded() 相同的 ASN.1 输出。我使用 EC,曲线类型是 prime256v1。这是我的 OpenSSL 代码: EC
我不想生成新的公钥,有人向我发送他的公钥(类型 PublicKey.sql),然后我将使用此 key 加密一些文本并将其保存在 Oracle DataBase 中。 我找到了一种读取公钥的方法,但我收
我使用以下代码将公钥和私钥转换为字符串 KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); keyPairGen.in
我尝试使用 git 简化我的工作,然后我尝试使用 git pull 我得到“权限被拒绝(公钥),我通过两个命令解决这个问题: 1. ssh-agent /bin/bash 2. ssh-add /ro
我是一名优秀的程序员,十分优秀!