通过AWS EC2实例中的userdata进行Git-pull

时间:2016-02-25 22:23:06

标签: git amazon-web-services ssh amazon-s3 amazon-ec2

我试图在启动期间使用userdata在ec2实例上拉出bitbucket存储库。 为此,我创建了一个密钥对并将其链接到我的bitbucket帐户。我已将私钥放入我的实例可通过IAM Role访问的S3存储桶中。

虽然当我手动执行每个步骤时这一切都很有效(登录ec2实例,从s3下载密钥,ssh-add the key,git clone my repo),当我尝试使用它时,一切都变得很糟糕通过userdata。

这是我迄今为止所尝试过的:

aws s3 cp s3://bucket/private_key private_key
chmod 600 private_key
eval `ssh-agent -s`
ssh-add private_key 
mkdir -p .ssh
ssh-keyscan -t rsa bitbucket.org > .ssh/known_hosts
git clone git@bitbucket.org:user/project.git

同样,这一切都可以在手动完成时完美运行。 然而,当通过userdata完成时,输出将是:

download: s3://bucket/private_key to ./private_key
Agent pid 1623
Identity added: private_key (id_rsa)
# bitbucket.org SSH-2.0-OpenSSH_5.3
Initialized empty Git repository in /project/.git/
Host key verification failed.
fatal: The remote end hung up unexpectedly

我尝试过几件事情,但它就像添加密钥时使用的ssh一样,与用于拉动回购的密钥相同... 任何意见都将非常感谢!

1 个答案:

答案 0 :(得分:1)

您的Linux发行版是什么?

mkdir -p .ssh
ssh-keyscan -t rsa bitbucket.org > .ssh/known_hosts

您没有在主目录中创建.ssh目录。根据您的Linux发行版,将其更改为/home/ec2-user//home/ubuntu//root/等,

示例

mkdir -p /home/ubuntu/.ssh
ssh-keyscan -t rsa bitbucket.org > /home/ubuntu/.ssh/known_hosts