无法使用bash脚本点安装私有Github存储库

时间:2020-09-07 20:13:23

标签: bash git github amazon-ec2 amazon-sagemaker

我正在尝试使用bash脚本安装私有github存储库。该脚本执行以下操作:

  • 确保有一个ssh代理处于活动状态
  • 从内存的持久性部分添加ssh密钥
  • 尝试安装github存储库

这一切都是通过生命周期配置在SageMaker AWS EC2实例中发生的。实现看起来像这样:

HOME=/home/ec2-user/
ENVPIP=$HOME/anaconda3/envs/tensorflow2_p36/bin/pip

eval "$(ssh-agent -s)"
ssh-add ${HOME}SageMaker/Setup/id_rsa

yes | $ENVPIP install git+ssh://git@github.com/...

运行此命令,出现以下错误:

ERROR: Command errored out with exit status 128: git clone -q 'ssh://****@github.com/...' /tmp/pip-req-build-ysacff_l Check the logs for full command output.

这是cloudwatch的所有相关输出:

Agent pid 5146

Identity added: /home/ec2-user/SageMaker/Setup/id_rsa (/home/ec2user/SageMaker/Setup/id_rsa)

2020-09-07T17:11:00.605-04:00

Collecting git+ssh://****@github.com/********1/*****-*****Library
  Cloning ssh://****@github.com/********1/*****-*****Library to /tmp/pip-req-build-ysacff_l

2020-09-07T17:11:00.605-04:00

Copy
ERROR: Command errored out with exit status 128: git clone -q 'ssh://****@github.com/********1/*****-*****Library' /tmp/pip-req-build-ysacff_l Check the logs for full command output.

this seems like an issue with the cloning protocol,但我找不到与ssh相关的任何东西。


P.s.
  • 在终端中运行相同的几行
  • 我很理智地检查了回购网址,然后按原样进行操作,因此...
  • 之后的任何内容我都认为没有问题

更新:
  • 尝试使用yum install git更新git。显然我的版本是最新的,因此执行此操作会导致相同的错误。
  • 我注释掉了pip安装,以便EC2实例能够成功启动,然后运行curl http://www.google.com,这产生了一堆html。这样看来,至少在EC2实例启动后,才允许出站流量。
  • 在bash脚本(生命周期配置,已注释掉有问题的代码)中运行curl http://www.google.com会产生相同的html输出,并且实例可以完美启动。这使我相信,实例启动时确实存在出站流量
  • 很多人都看过这个问题,没有人回答。我不喜欢尝试安装该存储库的特定方式,因此,如果有其他可行的选择,我会很乐意接受。
  • 是否可能在其他系统上遇到了竞争状况?这是在实例启动时发生的。他们有什么办法检查所有依赖系统是否在运行?
  • 在执行其他操作时,在控制台中出现了相同的错误。我重新初始化了ssh代理,添加了密钥,然后它起作用了。我想知道这是否是eval "$(ssh-agent -s)"yes | $ENVPIP install git+ssh://git@github.com/...之间的竞争条件吗?

0 个答案:

没有答案