2016-05-17 100 views
0

看不到任何帖子,解決這個具體問題,所以這裏去...如何通過SSH密鑰將私人服務器上的git repo克隆到本地機器上?

我有一個vps的git回購。回購商追蹤網站(包含在public_html中)以及該網站所需的目錄(即privatetmp等)。像這樣:

drwxr-xr-x 8 someuser someuser 4096 Jan 17 07:00 .git/ 
    drwxrwx--- 5 someuser www-data 4096 Jan 17 07:00 private/ 
    drwxr-x--- 10 someuser www-data 4096 Jan 17 07:00 public_html/ 
    drwxrwx--- 2 someuser www-data 4096 Jan 17 07:00 tmp/ 

因此,此回購在Web根目錄之上,不可公開訪問。在這個linux系統上設置只有密鑰訪問的ssh。

我想通過ssh克隆這個遠程git倉庫到我的本地機器。怎麼樣?

我已經試過git clone ssh://[email protected]:22/path/to/repo .但我得到:

Cloning into '.'... 
    Permission denied (publickey). 
    fatal: Could not read from remote repository. 

我不明白這是爲什麼,因爲我的ssh配置文件中正確指定IdentityFileHostname和正常的SSH正常工作與這些設置。

任何想法?謝謝。

+0

只是爲了好奇:您的公鑰是否存儲在Linux服務器上? – ckruczek

+0

你看過這個http://stackoverflow.com/questions/4565700/specify-private-ssh-key-to-use-when-executing-shell-command-with-or-without-ruby? – Peter

+0

將本地計算機上的公共SSH密鑰添加到VPS。 – Oldskool

回答

0

將環境變量GIT_TRACE設置爲0以外的值會使git輸出別名的擴展和委派給其他子程序。

這將允許你看到git使用ssh到你的遠程機器的確切命令。

在任何情況下,這裏的信息是很清楚的: Permission denied (publickey). 這來自SSH是肯定的,所以如果一個正常的SSH正常工作,你需要找到你所謂的正常SSH之間的區別, ssh該git正在執行。

+0

是的,我同意 - 該消息顯然來自ssh。我會進一步調查,看看我能找到什麼。謝謝。 – penname

+0

爲了進一步調試,可以將GIT_SSH_COMMAND環境變量設置爲「ssh -vvv」,這樣ssh將是詳細的(我認爲它需要GIT_TRACE來查看輸出,但不確定)。這也可以通過使用「主機ipaddress \ n LogLevel DEBUG3」作爲配置內容的'〜/ .ssh/config'來實現。 – user801247

相關問題