当前位置: 首页 > 知识库问答 >
问题:

如何为GitHub操作提供SSH密钥,以便pip可以从git Repo安装?[副本]

颜骁
2023-03-14

我想在GitHub操作作业中PIP安装私有GitHub存储库中的库。我可以很好地在我的计算机上安装它,因为我已经将GitHub配置为接受SSH密钥。但是如何给GitHub Actions Runner提供SSH密钥呢?

在我的电脑上,这很好:

python -m pip install "git+ssh://git@github.com/ORG/LIBRARY.git@main#egg=SOMETHING&subdirectory=SOMETHING"
Collecting LIBRARY
  Cloning ssh://****@github.com/ORG/LIBRARY.git (to revision main) to /tmp/pip-install-_kw52ce5/LIBRARY_35c4fb5cf6a64e30914beaec4a768bd1
  Installing build dependencies ... done
...
Successfully built LIBRARY-0.1.1

为了隐私,我更改了库、组织和目录的名称。GitHub回购中的pip安装文档在这里。

Step 15/20 : RUN pip install -r requirements.txt
 ---> Running in 5ece3eb6572e
  Collecting LIBRARY@ git+ssh://git@github.com/ORG/LIBRARY.git@main#egg=SOMETHING&subdirectory=SOMETHING
  Cloning ssh://****@github.com/ORG/LIBRARY.git (to revision main) to /tmp/pip-install-ohx86p2h/LIBRARY_2972ab1296ce45afa73bbb3c5a036bd1
  Running command git clone -q 'ssh://****@github.com/ORG/LIBRARY.git' /tmp/pip-install-ohx86p2h/LIBRARY_2972ab1296ce45afa73bbb3c5a036bd1
  Host key verification failed.
  fatal: Could not read from remote repository.

  Please make sure you have the correct access rights
  and the repository exists.

如何向GitHub Actions Runner提供SSH密钥?

共有1个答案

屠浩
2023-03-14

我认为“主机密钥验证失败”指出了~/.ssh/known_hosts文件的问题。通常,当您第一次通过ssh连接到主机时,您会得到类似于以下内容的提示:

The authenticity of host 'domain.com (a.b.c.d)' can't be established.
RSA key fingerprint is XX:XX:...:XX.
Are you sure you want to continue connecting (yes/no)? 

当您回答是时,主机密钥将自动添加到known_hosts文件中。您可以手动将主机密钥添加到运行Github操作的用户的known_hosts文件中:

  1. 直接从github管理员获得主机密钥,或者登录到github.com(更安全-强烈建议)。
  2. 使用ssh-keyscan-h github.com>>~/.ssh/known_hosts
 类似资料:
  • 问题内容: Jenkins要求使用证书才能使用 ssh 发布和 ssh 命令。可以在下进行配置。 问题是:如何创建证书? 我有两台ubuntu服务器,一台运行Jenkins,一台用于运行应用程序。 我应该设置Jenkins证书并将其一部分放置在部署框中,还是将证书设置在部署框上并将其一部分放置在Jenkins上?证书是否需要使用名为Jenkins的用户名,或者可以用于任何用户?我们在开发箱上没有J

  • github 已经配置了密钥在github里面,2周前使用正常,今天拉取代码发现保存,说没有权限 上2周已经生成了密钥和公钥 这个是我进行测试密钥的截图 我通过github官网查看了密钥设置,我希望可以正常拉取代码及提交代码

  • 我是数字证书的新手,目前遇到以下问题。我创建了一个密钥库 以下是根据说明我应该遵循的步骤: 创建一个OpenSSL私钥 使用私钥创建CSR 获取CRT生成 使用Key CRT生成PFX文件 使用PFX创建密钥库 将jks重命名为P12 进口委托中间体 但是,我使用keytool来创建密钥库和CSR,而不是OpenSSL,并生成了CRT。我被困在第4-4步。使用密钥CRT生成PFX文件,因为我有密钥

  • 我为Jetty 9和Kafka使用ssl密钥库。我需要提供密钥库和密钥密码来访问密钥库和私钥。但是,我不想在配置文件中以明文形式提供这些密码。还有哪些其他选项可以安全地提供/加密密码?每种方法的优缺点是什么?

  • 问题内容: 我正在尝试使用Apache2设置Debian服务器作为运行Jenkins的Tomcat 7的前端-这正在工作- 但我希望Jenkins监视托管在bitbucket上的私有Mercurial存储库,并且我想使用SSH。(我曾尝试使用简单的https,但仍然没有喜悦- SO上有一个问题答案,建议使用ssh) 通过将Jenkins .WAR文件拖放到/ webapps中,我已经使用Tomca

  • 我有一个github存储库、一个docker存储库和一个Amazon ec2实例。我正试图用这些工具创建一个CI/CD管道。这个想法是,当github存储库主分支发生推送时,将docker容器部署到ec2实例。我已经使用github操作来构建代码,构建docker图像并将docker图像推送到docker Hub。现在,我要将最新的映像从docker hub拉到远程ec2实例,并运行相同的映像。为