【问题标题】:How do you give a Newly Provisioned Server access to a Private Git Repo with Ansible?如何使用 Ansible 授予新配置的服务器访问私有 Git 存储库的权限?
【发布时间】:2025-12-26 19:50:11
【问题描述】:

我已经用ansible 配置了一个服务器,现在我想克隆一个private git repo(不是github)。

所以我的local machine's ssh keyprivate git repo 上得到了授权,到目前为止我所做的是copy 我本地的服务器公共和私人ssh 密钥。

但我觉得这不是最好的方法。

我知道如果您使用github,您可以使用API 创建部署密钥。但我不是。

所以我能看到的唯一其他方式是:

  1. 在新服务器上生成 ssh 密钥对
  2. 使用fetch 在本地复制新创建的 ssh 密钥对
  3. ssh-copy-id 或使用 authorized_keys 将服务器密钥添加到私有 git 存储库

有什么我遗漏的,可以用另一种更简单的方式完成吗?

【问题讨论】:

  • “我有什么遗漏的吗,可以用另一种更简单的方法来完成吗?” - 您的意思是除了使用 ansible 来自动化您描述的 3 个步骤(ssh-keygen、在本地复制 pubkey、将 pubkey 附加到私有 git 的 authorized_keys)并将其作为剧本运行吗?
  • 您认为这些步骤有什么问题?

标签: git ssh ansible


【解决方案1】:

你没有描述你的约束是什么,也没有提到你是否愿意在你的私人 git repo 中创建额外的密钥并管理它们。

另一个可能的选择:

  1. 在运行 ansible 之前设置 ssh-agent 并将您的个人密钥添加到其中,并在您运行 ansible 时将您的代理转发到远程主机。

对于该解决方案:SSH Agent Forwarding with Ansible 了解更多详情。

【讨论】:

  • 嗯,我正在寻找一个最佳实践,虽然这种事情在这里不受欢迎
  • 在您的private git repo 中添加具有只读权限的deploy 密钥并将其放置在远程服务器上有什么问题?
最近更新 更多