GitLab запрашивает пароль после добавления SSH-ключей - PullRequest
0 голосов
/ 17 мая 2019

Уважаемое сообщество StackOverflow,

Я создал ssh-ключи, следуя этой инструкции (https://gitlab.com/help/ssh/README). Я добавил пару ключей SSH ED25519 в профиль GitLab на веб-странице, и если я это сделаю ssh -T git@gitlab.comЯ получаю сообщение Welcome to GitLab, @username!, так что пока оно работает.

Однако я хочу git push и git pull из моего локального репозитория в GitLab без ввода пароля каждый раз.насколько я понимаю SSH-ключи, это должно быть именно то, что они делают, верно?

РЕДАКТИРОВАТЬ:

мой .ssh/config содержит:

Host machine                                                                                                                                                                                                   
      User username                                                                                                                                                                                           
      HostName machine.webside.com

The .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 голосов
/ 20 мая 2019

Ваш .git/config показывает, что ваш репозиторий доступен по HTTPS, поэтому используется аутентификация по имени и паролю.

Если вы хотите переключиться на ssh, вам также необходимо изменить локальную конфигурацию GIT, в дополнение кдобавив ключ SSH.

GitHub имеет очень подробное руководство по изменению вашего удаленного URL GIT с HTTPS на SSH: https://help.github.com/en/articles/changing-a-remotes-url#switching-remote-urls-from-https-to-ssh
Описанные здесь шаги также применимы для GitLab, за исключением того, что ваш удаленный URL будет чем-то вродекак git@gitlab.com:<repo-url.git> вместо git@github.com:<repo-url>.git

Более или менее, вам просто нужно использовать git remote set-url origin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...