GitLab在添加SSH密钥后要求输入密码

时间:2019-05-17 08:22:24

标签: gitlab ubuntu-18.04 ssh-keys

尊敬的StackOverflow社区,

我按照此(https://gitlab.com/help/ssh/README)指令创建了ssh键。我在网页上的GitLab配置文件中添加了ED25519 SSH密钥对,如果我ssh -T git@gitlab.com确实收到了消息Welcome to GitLab, @username!,那么到目前为止它似乎可以正常工作。

但是,我想git pushgit pull从本地存储库到GitLab,而不必每次都输入密码。据我了解,SSH密钥应该完全是它们所做的,对吧?

编辑:

我的.ssh/config包含:

Host machine                                                                                                                                                                                                   
      User username                                                                                                                                                                                           
      HostName machine.webside.com

.gitconfig包含:

[user]                                                                                                                                                                                                      
        name = John Doe                                                                                                                                                                                   
        email = john.doe@email.com

并且.git/config包含:

[core]                                                                                                                                                                                                      
        repositoryformatversion = 0                                                                                                                                                                         
        filemode = true                                                                                                                                                                                     
        bare = false                                                                                                                                                                                        
        logallrefupdates = true                                                                                                                                                                             
[remote "origin"]                                                                                                                                                                                           
        url = https://gitlab.com/johndoe/projectname.git                                                                                                                                              
        fetch = +refs/heads/*:refs/remotes/origin/*                                                                                                                                                         
[branch "master"]                                                                                                                                                                                           
        remote = origin                                                                                                                                                                                     
        merge = refs/heads/master                                                                                                                                                                           
[branch "branch1"]                                                                                                                                                                                  
        remote = origin                                                                                                                                                                                     
        merge = refs/heads/branch1                                                                                                                                                                  
[branch "branch2"]                                                                                                                                                                                        
        remote = origin                                                                                                                                                                                     
        merge = refs/heads/branch2

1 个答案:

答案 0 :(得分:0)

您的.git/config显示您的存储库是通过HTTPS访问的,因此使用了用户名和密码身份验证。

如果要切换到ssh,除了添加SSH密钥外,还必须更改本地GIT配置。

GitHub上有一个非常详细的教程,介绍如何将GIT远程URL从HTTPS更改为SSH:https://help.github.com/en/articles/changing-a-remotes-url#switching-remote-urls-from-https-to-ssh
除了远程URL将类似于git@gitlab.com:<repo-url.git>而不是git@github.com:<repo-url>.git

之外,此处描述的步骤也适用于GitLab。

或多或少,您只需要使用git remote set-url origin