2016-02-25 81 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下完成。謝謝 ! –