pip在bash脚本中安装私有GitHub存储库

时间:2020-08-11 22:02:55

标签: linux bash amazon-web-services github amazon-sagemaker

所以让我布置场景;我正在尝试设置一台计算机(AWS SageMaker笔记本),以通过bash脚本(称为生命周期配置,始终在笔记本启动时运行)将私有github存储库pip安装到特定的conda环境。我通过ssh进行此操作,我在内存的持久性部分中生成了一个公用/专用密钥对

当前,我的bash脚本如下所示:

#!/bin/bash

#Difining key directories
HOME=/home/ec2-user/
ENVPIP=$HOME/anaconda3/envs/tensorflow2_p36/bin/pip

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


#________pip installing libraries to tensorflow2_p36________
yes yes |$ENVPIP install git+ssh://git@github.com/...

看着CloudWatch(基本上只是控制台输出),我收到此错误:

Host key verification failed.
fatal: Could not read from remote repository.

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

yes yes |yes yes |$ENVPIP install git+ssh://git@github.com/...的原因是尝试通过执行建议的in this question describing a similar problem来纠正此错误。我尝试了yes | $ENVPIP...yes y |$ENVPIP...yes Y |$ENVPIP...,但无济于事,我一直得到相同的结果。

在控制台中运行它们很完美:

eval "$(ssh-agent -s)"
ssh-add ~/SageMaker/Setup/id_rsa
.../pip install git+ssh://git@github.com/...

这让我觉得问题与我在bash脚本中编写它的方式有关吗?我考虑过增加延迟和其他东西,但我注意到了一些其他有趣的东西,可能是提示,但在这一点上我很茫然。想到我会把它扔在那里,看看你们是否有一个主意。

edit:您认为这与ec2(计算机)在启动时还是之后运行时的竞争条件有关吗?我注意到,当我创建带有bash脚本的ssh-agent时,其ID为〜4000,但是当我手动进行操作时,它的ID为〜9000

0 个答案:

没有答案