Я загрузил свои ключи SSH~/.ssh/id_rsa.pub
в Bitbucket, как описано , но Git по-прежнему запрашивает у меня пароль при каждой операции (например, git pull
). Я что-то пропустил?
Это частный репозиторий (ветвь частного репозитория другого человека), и я клонировал его так:
git clone git@bitbucket.org:Nicolas_Raoul/therepo.git
Вот мой местный житель .git/config
:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://Nicolas_Raoul@bitbucket.org/Nicolas_Raoul/therepo.git
[branch "master"]
remote = origin
merge = refs/heads/master
В той же среде с тем же открытым ключом Git на Github работает отлично.
.ssh
есть rwx------
, .ssh/id_rsa
есть -rw-------
, .ssh/id_rsa.pub
есть-rw-r--r--
.git/config
сgit@bitbucket.org:Nicolas_Raoul/therepo.git
и теперь это работает!ssh://git@bitbucket.org/userName/repoName.git
- безssh://
префикса это не сработало.Как объясняется здесь , если вы клонируете с помощью SSH url, вам не нужно вводить имя пользователя / пароль каждый раз, когда вы нажимаете / извлекаете. Проверьте ответ выше @manojlds
Но если вы хотите клонировать с HTTPS и избегать ввода имени пользователя / пароля каждый раз, вы можете сохранить учетные данные в кеше с помощью следующей команды:
git config --global credential.helper 'cache --timeout 3600'
где 3600 (секунд) означает 1 час, вы можете изменить его согласно вашему требованию.
источник
manecs-MBP:LocationTracker manec$ git remote -v origin https://Vysh1@bitbucket.org/Vysh1/locationtracker.git (fetch) origin https://Vysh1@bitbucket.org/Vysh1/locationtracker.git (push)
Его уже ответили выше. Я суммирую шаги, чтобы проверить выше.
запустить
git remote -v
в проекте реж. Если вывод показывает удаленный URL, начинающийся с,https://abc
тогда вам может понадобиться пароль пользователя каждый раз.Таким образом, чтобы изменить удаленный запуск URL
git remote set-url origin {ssh remote url address starts with mostly git@bitbucket.org:}
.Теперь запустите,
git remote -v
чтобы проверить измененный удаленный URL.См. Https://help.github.com/articles/changing-a-remote-s-url/.
источник
Привет гуглеры из будущего.
В MacOS> = High Sierra ключ SSH больше не сохраняется в KeyChain по причинам .
Использование
ssh-add -K
больше не выживает, перезапускает также.Вот 3 возможных решения .
Я успешно использовал первый метод. Я создал файл с именем
config
в~/.ssh
:источник
config
файлом в/.ssh
идеальном состоянии!cd ~/.ssh
+ls
+nano config
(файл уже был создан) + добавить код в ответ Вайдена. Затем управляйте X + Y, чтобы сохранить файл.В случае HTTP-запроса также возможно альтернативно вставить учетные данные (с паролем) непосредственно в URL:
Это избавит от боли, чтобы каждый раз выдавать свои учетные данные. Просто измените ваш .git / config (URL).
источник
$%
777
: останавливаться, думать, исследовать, понимать, а затем делать это правильноНи один из этих ответов не помог мне, оказалось, что моя проблема немного отличалась. Это был ssh, который спрашивал мой пароль каждый раз перед отправкой ключа. Так что я должен был связать свой пароль с этой командой:
Затем вам будет предложено ввести пароль и сохранить его. Это может быть решением, которое вы ищете, если каждый раз, когда вы запрашиваете пароль, он говорит
Больше информации здесь
ПРИМЕЧАНИЕ. Я успешно использовал это на своем компьютере Mac, но, как указал @Rob Kwasowski ниже,
K
опция верхнего регистра уникальна для Mac. Если не на Mac, вам нужно использовать строчные буквыk
(что, вероятно, работает и для Mac, но я не проверял).источник
k
:ssh-add -k ~/.ssh/id_rsa
k
, а не прописная, так как эти опции чувствительны к регистру.-K
характерных для Mac: help.github.com/en/articles/error-ssh-add-illegal-option----kШаг 1. Установите git-credential-winstore
https://confluence.atlassian.com/bitbucketserver/permanently-authenticating-with-git-repositories-776639846.html
Шаг 2: git config --global credential.helper 'cache --timeout 3600'
Это будет хранить ваш пароль в течение 1 часа
источник
Step 1
это дляWindows
иStep 2
для,Linux
но вы забыли это упомянуть об этом должным образом.Следующее предполагает доступ из командной строки через iTerm / Terminal к bitbucket.
Для MacOS Sierra 10.12.5 моя система обнаружила аналогичную проблему - запросить мою SSH-фразу для каждого соединения с битбакетом.
Проблема связана с обновлениями OpenSSH в macOS 10.12.2, которые описаны здесь в Технической ноте TN2449 .
Возможно, вы захотите адаптировать свое решение, но при добавлении в файл ~ / .ssh / config будет работать следующее:
Для получения дополнительной информации о ssh-конфигах, посмотрите справочные страницы для ssh_config:
Еще одна вещь: есть хорошая рецензия на суперпользователя здесь , что обсуждает эту проблему и различные решения в зависимости от ваших потребностей и настройки.
источник
Я клонировал хранилище с HTTPS-URL вместо SSH-URL, поэтому даже после добавления SSH-ключа он запрашивал у меня пароль в Bash Shell.
Я просто редактировал
./.git/config
файл и изменить значениеurl
переменной, просто заменивhttps://
вssh://
Например
Изменился на:
источник
Возможно, вам придется перепроверить файл идентификаторов SSH. Возможно, вы направляете BitBucket посмотреть на другой / неправильный закрытый ключ, эквивалентный открытому ключу, который вы сохранили в BitBucket.
Проверьте это с
tail ~/.ssh/config
- вы увидите что-то похожее на:Помните, что добавление дополнительных идентификаторов (таких как работа и дом) может быть выполнено с помощью
ssh-add
команды, например:Как только вы подтвердите, какой закрытый ключ просматривается локально, вы можете взять свой открытый эквивалент, в этом случае:
И вставьте этот шифр в BitBucket. Теперь ваши git pushes (при условии, что вы используете клон SSH, как указано в вышеупомянутых ответах) будут разрешены без пароля, поскольку ваше устройство признано дружественным.
Надеюсь, это поможет кому-то прояснить ситуацию.
источник
Со мной, хотя я запустил 'git clone ssh: //git@stash.xxx.com: 7999 / projName / projA.git', мне все еще предлагали ввести пароль для этого нового репо, который я клонировал, поэтому, сравнивая его .git / config файл для других репозиториев, которые работают. Оказалось, что это URL-адрес в разделе [remote "origin"], для нового репо он был указан как путь ssh, но был установлен https: xxx для рабочего. ,
источник
У меня были другие странности при входе в систему. Я столкнулся с чем-то, что казалось совершенно глупым, но сработало в моем случае. Просто перейдите на связку ключей MacOS. Найдите значок блокировки входа в систему на боковой панели. Нажмите, чтобы выйти, а затем нажмите, чтобы войти. Звучит глупо, но это решило мои проблемы. Стоит выстрел.
источник