Вы уверены, что клонируете по SSH?
Запустите git remote -v
.Вывод ниже - из репозитория, который клонирует через HTTPS: обратите внимание на схему URL https://
.
origin https://github.com/git/git.git (fetch)
origin https://github.com/git/git.git (push)
Клоны URL для SSH будут иметь одну из двух форм:
username@host.domain.tld:foo/bar/baz.git
ssh://username@host.domain.tld/foo/bar/baz.git
Предполагая, что ваш хост поддерживает как SSH, так и HTTPS (как это делают GitHub, GitLab и Gitorious), затем просто измените URL-адрес пульта, а не перенастраивайте весьhistory.
git remote set-url origin git@host.domain.com:foo/bar/baz.git
У разных хостов будут разные дизайны URL.Например, переключите приведенный выше URL-адрес GitHub с HTTPS на SSH с помощью
git remote set-url git@github.com:git/git.git
GitHub имеет соответствующее руководство для изменения URL-адреса удаленного git .
Windows
В Windows типичная установка использует PuTTY в качестве клиента SSH, что означает, что вы захотите запустить Pageant , агент PuTTY SSH.В Windows я запускаю быстрое пакетное задание из группы автозагрузки:
@echo off
start /b "C:\Program Files\PuTTY\pageant.exe" "C:\Users\Greg\Greg.ppk"
, где Greg.ppk
- это ключ, который я создал с помощью PuTTYgen .
Oneдальнейший шаг: попросите git использовать plink , клиент PuTTY для неинтерактивных соединений.Задайте для переменной среды GIT_SSH
значение
C:\Program Files\PuTTY\plink.exe
, предполагая, что именно здесь живет PuTTY.
Unix, Linux, Cygwin, Git Bash
На Unix-подобных платформахисправить это просто.Если ssh-agent
не запущен, запустите его, например,
$ eval `ssh-agent`
, а затем добавьте свой идентификатор по умолчанию с помощью
$ ssh-add
Если у вас есть идентификатор в другом месте, запустите
$ ssh-add /path/to/other/ssh_id
Если у вас все еще есть проблемы, у GitHub есть страница для устранения проблем с GitHub и SSH , но, пожалуйста, также обновите ваш вопрос, чтобы мы могли сделать этот ресурс более полезным.
Недостаток SSH-ключа без пароля
Может показаться заманчивым создать и зарегистрировать SSH-ключ без пароля или парольной фразы, поскольку вам не будет предложено ввести его для каждого git clone
,git fetch
, git pull
или git push
.Однако без ключевой фразы ваш SSH-ключ не зашифрован.Это означает, что любой, кто может получить копию вашего личного ключа (файл с именем id_rsa
, id_dsa
, id_ecdsa
- без расширения .pub
), может выдать себя за вас без каких-либо усилий.
Приятный дизайн SSH означает, что можно сделать операции и удобными и безопасными.Идите и сделайте ваши настройки безопасными сегодня.В течение нескольких минут дополнительных усилий вам не придется задумываться об этом в будущем.
Если вы уже настроили ключ без пароля, зашифруйте его, запустив
ssh-keygen -p
Вы увидите подсказки для файла ключа (со значением по умолчанию), для вашей новой парольной фразы и еще раз, чтобы подтвердить, что вы правильно ввели свою парольную фразу.