我如何与两个不同的SSH用户连接到GitLab?(How can I connect to GitL

2019-10-29 04:47发布

我有两个GitLab帐户 - 一个我个人的项目,一个用于工作 - 而它们都有产生SSH密钥和补充。 有一个id_rsa的工作帐户(因为这是我第一次创建)和id_rsa_personal为个人之一。 我的~/ssh/config如下:

Host gitlab-personal
    Preferredauthentications publickey
    User personalusername
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa_personal
Host gitlab-work
    Preferredauthentications publickey
    User workusername
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa

然而,当我运行ssh -vvvT git@personalusername.gitlab.com ,我得到如下:

OpenSSH_7.6p1 Ubuntu-4, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/personalusername/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "personalusername.gitlab.com" port 22
ssh: Could not resolve hostname personalusername.gitlab.com: Name or service not known

第四行( Applying options for * )似乎表明, ssh已经我的两个配置设置忽略,拿起默认值,这是使用id_rsa 。 因为这是我的工作帐户,我无法克隆我的个人资料库,从而导致出现以下错误:

git clone git@gitlab.com:personalusername/personalproject.git personalprojecttest
Cloning into 'personalprojecttest'...
GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

有一个答案(类似的问题gitlab有两个SSH密钥无法连接(配置更新) ),但关于Git的配置指定的用户名会谈。 我的问题是,我没有或者希望全球混帐配置为我做的对个人和工作的工作在同一台机器上。 我希望有一个本地的Git配置(在./.git/config),然而,此文件夹不存在,所以我没有本地的Git配置。

我运行Ubuntu 18.04。

Answer 1:

的〜/ .ssh /配置:

Host gitlab-personal
    User git
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa_personal
    Preferredauthentications publickey

Host gitlab-work
    User git
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa
    Preferredauthentications publickey

然后尝试ssh -vvvT gitlab-personalssh -vvvT gitlab-work

git clone gitlab-personal:personalusername/personalproject.git


Answer 2:

你有没有尝试过ssh-add ~/.ssh/id_rsa_personal ? 展位键应该加入到ssh-agent。



Answer 3:

像往常一样,我写定了这个问题后的问题我自己的时刻。 我修改了我的~/ssh/config文件与此:

Host gitlab.com
    Preferredauthentications publickey
    User personalusername@personalemailaddress.com
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa_personal
Host gitlab.com
    Preferredauthentications publickey
    User workusername@workemailaddress.com
    HostName gitlab.com
    IdentityFile ~/.ssh/id_rsa

我很简单地改变了User personalusername使用的电子邮件地址,而不是用户名。 我能够在此之后成功克隆我的个人项目。

另外, ssh -vvvT git@personalusername.gitlab.com命令是错误的。 正确的只是ssh -vvvT git@gitlab.com ,其中有输出两个键的提及。 这是什么导致我不能将git clone命令再出手,只是为了检查。



文章来源: How can I connect to GitLab with two different ssh users?
标签: git ssh gitlab