问题标签 [deploy-keys]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4384 浏览

git - 如何使用部署密钥克隆仓库?

我使用此处概述的方法成功地为私有存储库创建了部署密钥。

现在,当我运行时,git clone repo_url我希望它会克隆?但事实并非如此。出现一个弹出窗口,需要 git 凭据(标准电子邮件/密码1)。我哪里出错了?我可以cat my_rsa_key看到它已经创建成功(保存到默认位置)。

也许我错过了一些东西,或者我必须使用不同的命令克隆 repo?

1这首先破坏了拥有部署密钥的目的

笔记

我在 Windows Server 2019 上

0 投票
2 回答
2941 浏览

amazon-web-services - AWS CodeBuild GitHub 部署密钥

使用 AWS CodeBuild,您可以将 GitHub 定义为源。如果您的仓库是私有的,您可以传递个人令牌。我已经建立了一个 CodeBuild 流程并确认它有效。

我想做的不是使用个人令牌,而是使用 GitHub 部署密钥对私有仓库进行身份验证。我已经在 GitHub 中设置了部署密钥。如何在 AWS CodeBuild 控制台或 YAML 脚本中进行配置?

0 投票
0 回答
58 浏览

github - 尽管成功创建了部署密钥,Github 仍然要求提供凭据?

我根据此处的 Windows 说明创建了部署密钥

但不是使用刚刚设置的部署密钥,git push而是要求提供凭据,首先是弹出窗口,然后是 SSH 弹出窗口,然后是 git bash 命令行本身!这非常令人震惊,因为部署密钥的全部目的是避免必须提供对整个 github 帐户的访问权限

鉴于我已经完全按照 github 自己的说明进行操作,但这不起作用,我不知道下一步该做什么。

笔记

  • 前段时间,不知何故,我在同一台(Windows)服务器上成功设置了部署密钥。因此,机器上的 > 1 键可能会混淆该过程的某些部分。我不确定这与它有什么关系。

  • 我可以在这里看到 github 期望密钥被命名为id_rsaand id_rsa.pub,但鉴于这是我在这个特定服务器上运行的第二个部署密钥,我以不同的方式命名了第二个集合以避免覆盖原始集合(原始集合仍然存在,那里中只有两个文件C:\Users\[YOUR-USER-NAME]\.ssh\

0 投票
0 回答
37 浏览

github - 通过 ssh 命令测试 github.com 的 ssh 密钥

Github 的文档解释说,您可以运行以下命令来验证密钥:

我也实验过,看到你可以跑

获取一些信息。是否有可以执行的命令来获取与尝试获取 shell 时相同的信息(没有额外的 args 到 ssh)?

0 投票
1 回答
58 浏览

github - 如何使用部署密钥在多台服务器上自动克隆同一个存储库?

我已经从服务器实例创建了一个部署密钥,比如存储库 R1 的主机 A。现在我扩展到 3 台服务器,即主机 B 和主机 C,并希望从它们访问 R1。

当涉及到多个服务器实例时,如何使用部署密钥?我是否必须将部署密钥复制到其他服务器,还是必须在主机 B 和主机 C 上生成新密钥并将它们添加到 GitHub 存储库设置?

其中哪一个是支持自动可扩展性的理想方式?

0 投票
1 回答
2892 浏览

ssh - Gitlab Fingerprint 已被获取,Deploy keys projects 部署密钥指纹已被获取

我想在同一个 VPS 中部署两个项目。我已经成功部署了一个项目并将部署密钥添加到 GitLab 存储库。但是当我尝试将相同的 ssh 密钥添加到我的其他存储库部署密钥时,它说,

指纹已采集,部署密钥项目部署密钥指纹已采集

这里发生了什么?不能为两个项目添加相同的密钥吗?

任何建议,请。

0 投票
2 回答
7931 浏览

github - 弃用基本密码身份验证会影响 GitHub 部署密钥吗?

我收到了一封来自 GitHub 的电子邮件,内容是:

您最近使用 git/2.24.3 (Apple Git-128) 使用密码通过 git 访问 username/repo 处的存储库。使用 Git 密码的基本身份验证已被弃用,并且很快将不再有效。访问https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/了解有关建议的解决方法和删除日期的更多信息。

因此,对于推送到 GitHub 的 git 提交,我需要使用另一种标准命令行方法,这应该不是问题。

但我想知道这会影响部署密钥吗?例如,在已经运行了几个月或几年的自动化流程中——我们应该为变化做好准备吗?

我已经检查了博客文章,并注意到还有很多时间(弃用发生在 2021 年 8 月 13 日),但重要的是要了解对部署密钥的任何影响以便做好准备。

0 投票
0 回答
1290 浏览

python - 使用 Poetry 从 Github 安装多个私有包并部署密钥

我想使用诗歌将多个私有 Github 存储库作为 python 包安装到我的存储库中。这在poetry install本地运行时工作正常,因为我已将我的公共 SSH 密钥添加到 Github,它允许诗歌访问私有存储库。问题是我想在我的 CI/CD 管道中安装这些相同的私有包,为此我需要为每个 repo 添加一个部署密钥。需要将正确的部署密钥用于正确的存储库并且要使其正常工作,我需要设置一个具有以下格式的别名的配置(我实际上还没有知道这是否真的有效):

我需要安装的私有存储库的名称repo-1和位置。repo-2在本地运行时,pyproject.toml需要按以下格式设置包:

因为这将允许开发人员在没有任何配置的情况下安装包(假设他们有权访问)。然而,对于 CI/CD 管道,URL 需要与 SSH 配置文件中的别名匹配,因此它需要看起来像这样:

现在,我似乎陷入困境的是如何在同一个 pyproject 文件中包含两个不同的 git 路径?我尝试了以下方法:

这样我就可以在poetry install本地运行,它会使用开发依赖项并poetry install --no-dev --extras cicd_modules在 CI/CD 管道中使用别名路径。可悲的是,这给了我一个CalledProcessError似乎诗歌试图安装可选包,尽管可选标志设置为 true。

我在这里做错了什么,我是否以某种方式错误地使用了可选标志?有没有更好的方法来解决这个问题?总之,我只是希望能够使用诗歌和 Github 在 CI/CD 管道中部署密钥作为包安装多个私有存储库,而不会破坏本地安装行为,如果是以这种方式或其他更好的方式,我真的没有强烈的意见。

0 投票
1 回答
1026 浏览

git - Git over ssh 忽略了 ssh 配置

所以,我已经搞砸了一段时间了,但 git 仍然在起作用。虽然 ssh 现在工作得很好,但 git 似乎忽略了我的 ssh 配置,但我至少知道当我在相关存储库中使用 a 指定端口和密钥时它可以sshCommand工作.git/config

纯 ssh 使用配置文件工作得很好,但是,我使用的是 Github 部署密钥,所以我的 ssh 配置看起来更像这样:

使用 ssh 连接仍然没有任何问题,但我认为我的问题归结为我对主机和主机名如何工作的一些误解,可能?不太确定,manssh_config 和 ssh 的页面没有什么特别突出的。

由于工作相关的原因,主要是我们的VPN有点不稳定,我需要使用端口443。

奇怪的是,ssh 不能使用github.comas Hostname,只有当它是ssh.github.com. 我在连接它时遇到了问题,只是在 Github 文档的一个示例中遇到了这个问题,但没有提到。对其进行了测试,此后一直运行良好。

这也适用于 git repo 中的远程,因为我也需要在ssh.那里附加。git remote add orgin git@github.com:user/test.git不起作用,但git remote origin2 git@ssh.github.com:user/test.git确实如此。我已经测试了 git 是否可以通过运行git remote show <remote>并替换<remote>originor来连接origin2

但是,如果不指定sshCommandto be sshCommand = ssh -p 443 -i ~/.ssh/id_ed25519-test.github,它将不会连接。

我试过用这个调试:

在使用git时,虽然我有时会删除它的GIT_SSH_COMMAND="ssh -vvv" \一部分,因为它似乎覆盖了 git 配置文件,我想这并不奇怪。

如果我在调试 ssh_command 中指定密钥,它至少会选择那个,但它仍在尝试通过端口 22 连接到 Github。这是日志:

如您所见,它完全跳过了~/.ssh/config定义。即使我在 ssh 命令中指定它,它也会忽略它。这就是让我相信我对如何hosthostname工作有一些误解,或者有一些不言而喻的行为导致了这种情况的原因。

我也曾经ssh -vvvT <remote>尽可能地冗长,并且如前所述,普通 ssh 完全可以正常工作。无论命令运行时我在目录树中的哪个位置,无论host我调用的是哪个,它都可以正常工作。git这就是为什么我很困惑,因为当涉及到这个过程时它不起作用。

也只安装了 OpenSSH,所以我认为它不应该是一个冲突的 ssh 客户端。

现在,我只需添加一个sshCommand每个 repogit配置就可以了,但是,通过这样做,实际上有一个 ssh 配置没有什么意义,因为 Github 不支持 shell 访问并且在我的机器上工作时它没有被大量使用目前不用于任何其他适当的 ssh-ing。

在过去两周左右的时间里,我一直在为此挠头,但我已经放弃了一半,并决定至少尝试发布一个关于这个的问题,因为其他人都喜欢这个(至少在标题上)还没有解决我的问题。希望这里有人知道出了什么问题并可以告诉我如何解决它,或者至少将我指向一些文档或解释我做错了什么的东西。

0 投票
0 回答
29 浏览

gitlab - 如何在不关闭任何用户类的保护的情况下允许部署密钥推送访问 GitLab 受保护的分支?

我们有一个自动化流程,需要推送访问 GitLab Enterprise 中受保护的分支。该分支受到用户、开发人员和维护人员的保护,不会对其进行推送,我们希望保持这种状态。所以我们不希望任何类型的 GitLab 用户能够通过 UI 或命令行推送到受保护的分支。我们只希望 Deploy Key 授权的自动化流程能够推送到分支。这可能吗?如果可以,怎么做?