使用自定义SSH密钥从Atlassian Stash / BitBucket克隆

时间:2016-07-05 23:37:12

标签: git ssh bitbucket

为后代保留答案

我有一个脚本需要克隆在Stash中保存的仓库。回购没有开启公共访问(我们不能因内部政策而导致)。我为此脚本生成了一个新的SSH密钥对,并将公钥存储在"访问密钥" Stash中repo配置的一部分。密钥不存储在我的用户.ssh目录中(它们不在〜/ .ssh中),而是在脚本本地的.ssh目录中(script_home / .ssh,具有正确的所有权和文件权限)

什么是使用本地密钥克隆存储库的git命令?

1 个答案:

答案 0 :(得分:0)

GIT_SSH_COMMAND='ssh -i /path/to/script/.ssh/id_rsa' git clone ssh://git@host:port/project/reponame.git

你需要在-i选项中使用绝对路径,我找到了。

如果您不喜欢git命令之前的GIT_SSH_COMMAND设置,也可以使用ssh-add

ssh-add /path/to/script/.ssh/some_private_key
git clone ssh://git@host:port/project/reponame.git

使用SSH或HTTPS时,Stash似乎没有对URL进行轻微修改。匹配的HTTPS URL是

https://actual.user@host:port/scm/project/repo.git

不要像我一样被抓住并拥有' / scm / ' SSH URI中的一部分HTTPS URI

另请注意这与Github有何不同。

使用SSH时

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

网址的SSH协议部分完全丢失。

使用HTTPS时

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

此案例中存在HTTPS协议。