2013-01-20 139 views
8

我有一個奇怪的問題克隆從亞馬遜ec2服務器的git存儲庫。它的工作原理沒有上運行Ubuntu 12.04我的一臺計算機的任何問題,而在使用12.10另一個它給了我一個錯誤:.ssh配置與亞馬遜ec2和git

ssh: Could not resolve hostname ec2server: Name or service not known 
fatal: The remote end hung up unexpectedly 

它就像它不承認我的配置文件。我用下面的git命令來克隆:

sudo git clone ec2server:/var/www/project.git 

sudo git clone ec2xxx.compute-1.amazonaws.com:/var/www/project.git 

兩個配置文件是在兩臺計算機上是相同的,在〜/ SSH具有以下內容:

Host ec2server 
    Hostname ec2XXX.compute-1.amazonaws.com 
    User ubuntu 
    IdentityFile ~/.ssh/mykey.pem 

如果我用實際地址替換ec2server,會出現以下錯誤:

Cloning into 'project'... 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

在此先感謝。

回答

5

最近,我不得不重新安裝的舉行的工作配置的系統,我還沒有成功地複製它,所以它不是關於Linux版本(很可能)。我設法做的是,我設法使用提到的原始腳本將存儲庫克隆到我的主目錄中。在這裏,它正確地選擇了名稱,但是如果我導航到/ var/www,我之前做了什麼,它只是給了我同樣的錯誤:找不到ec2server ...。所以我認爲這個問題必須通過權限+命令組合來完成。如果任何人都能弄清楚如何使它工作,我會將他的回答標記爲正確答案,直到那時我將我的標記標記爲正確答案,因爲這是最接近正確的答案。

UPDATE

我想通了什麼問題:我不得不改變在/ var/WWW文件夾的權限,以便能夠克隆到該目錄中。現在它是777(僅用於本地機器上的開發)。

+0

聽起來不錯,它適合你,所以+1。我的回答不夠具體。 – VonC

5

它通常是一個權限問題。
您的配置文件的父目錄上的chmod可能在您的兩臺計算機之間不同。
(我說的不是僅僅眼前的父目錄.ssh,也所有的父目錄)

請參閱「Git SSH authentication」,但也知道,如果任何父目錄是可寫的組或世界,ssh將不起作用。


還要注意的是你的第二個命令是不對的,而應該是:

git clone [email protected]/var/www/project.git 

沒有 ':'(A ':' 是指使用config文件,用scp樣語法)

但它只能在~/.ssh/id_rsa~/.ssh/id_rsa.pub之間工作。
如果你有mykey.pem,那麼你需要一個文件config爲SSH知道哪裏是你的公鑰和私鑰,這意味着只有這樣才能正常工作:

git clone ec2server:/var/www/project.git 

另外一個焯芬(在this threadforum之後)是檢查是否有任何DNS/DHCP問題(有點像「Working with git behind a dynamic DNS」)。

Host ec2server 
    Hostname 1xx.xxx.xxx.xxx # ip address of ec2XXX.compute-1.amazonaws.com 
    User ubuntu 
    IdentityFile ~/.ssh/mykey.pem 
+0

但是parrent目錄是主目錄 – Pio

+0

@Pio你的意思是你的'config'文件放在'/ home/yourLogin'中,而不是'/ home/yourLogin/.ssh'? – VonC

+0

@Pio請參閱http://stackoverflow.com/a/10042145/6309或http://stackoverflow.com/a/8172628/6309瞭解ssh配置文件的示例。 – VonC