2016-02-25 99 views
0

我试图在启动期间使用userdata在ec2实例上拖动一个bitbucket存储库。 为此,我创建了一个密钥对并将其链接到我的bitbucket帐户。我已将私钥放入可由我的实例通过IAM角色访问的S3存储桶中。通过AWS EC2实例中的userdata进行Git-pull

虽然这一切都很好,当我手动完成每一步(在ec2实例上登录,从s3下载密钥,ssh-添加密钥,git克隆我的回购),当我尝试去它通过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 [email protected]:user/project.git 

同样,这一切的时候手动完成完美的作品。 然而,通过用户数据完成时,输出将是:

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是不一样的用来拉了一个回购... 任何输入将不胜感激!

回答

0

你的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 
+0

它的工作。必须用户/ root /因为它在userdata下完成。谢谢 ! –