0%

Git命令使用不同的SSH密钥

最近要在自动构建中加入个打tag的操作,却发现可能是gitlab的bug,之前加过的默认deploy key怎么都找不到了。没办法,只好在打包服务器上再创建一个SSH密钥对,让执行git命令时使用这个新的SSH密钥。

以下的示例假设我们要访问的git服务器地址为:gitlab.knktc.com 。

首先使用以下命令创建一个新的SSH密钥对:

1
2
mkdir -p /home/knktc/gitlab_ssh_keys
ssh-keygen -f /home/knktc/gitlab_ssh_keys/id_rsa

这个示例中,新的SSH私钥已经存储到了/home/knktc/gitlab_ssh_keys/id_rsa这个路径了。

然后在当前用户的根目录下创建ssh config文件:

1
vim ~/ssh/config

填入以下的配置:

1
2
Host gitlab.knktc.com
IdentityFile /home/knktc/gitlab_ssh_keys/id_rsa

这个配置的意思是:如果使用ssh访问主机名为gitlab.knktc.com,则使用刚才新创建的密钥。

最后测试下clone项目:

1
git clone git@gitlab.knktc.com:blog/knktc-com.git

OK,已经成功了。

更多关于ssh config配置文件的细节,可参考:https://linux.die.net/man/5/ssh_config

如果我的文字帮到了您,那么可不可以请我喝罐可乐?