2016-07-05 102 views
0

爲後代保留答案使用自定義SSH密鑰從Atlassian Stash/BitBucket克隆

我有一個腳本需要克隆存儲在Stash中的回購。回購沒有公開訪問權限(我們不能因內部政策)。我爲此腳本生成了一個新的SSH密鑰對,並將公鑰存儲在Stash中repo配置的「訪問鍵」部分。這些密鑰不存儲在我的用戶.ssh目錄中(它們不在〜/ .ssh中),而是存在於腳本本地的.ssh目錄中(script_home/.ssh,擁有正確的所有權和文件權限)

什麼是使用本地鍵的git命令克隆回購?

回答

0
GIT_SSH_COMMAND='ssh -i /path/to/script/.ssh/id_rsa' git clone ssh://[email protected]:port/project/reponame.git 

您需要在-i選項中使用絕對路徑,我找到了。

您可以使用ssh-添加太多,如果你不喜歡的git命令

ssh-add /path/to/script/.ssh/some_private_key 
git clone ssh://[email protected]:port/project/reponame.git 

不,藏匿似乎使用SSH或HTTPS時稍微修改網址之前,請先的GIT_SSH_COMMAND設置。匹配HTTPS URL是

https://[email protected]:port/scm/project/repo.git 

不要讓她的老公和我一樣,有 '/SCM/' 的HTTPS URI的一部分,SSH URI

還要注意如何不同於Github上。

當使用SSH

git clone [email protected]:some_user/some_repo.git 

URL的SSH協議部分被完全丟失。

當使用HTTPS

git clone https://github.com/some_user/some_repo.git 

和HTTPS協議存在這種情況。