Вопрос:
Я загрузил свой ~/.ssh/id_rsa.pub в Bitbucket SSH keys как объяснил, но Git все еще спрашивает меня о моем пароле при каждой операции (например, git pull). Я что-то пропустил?
Это частный репозиторий (fork другого личного репозитория), и я клонировал его следующим образом:
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 is -rw——-, .ssh/id_rsa.pub is -rw-r—r—
Лучший ответ:
Вы уверены, что вы клонировали его с помощью URL-адреса ssh?
URL-адрес источника говорит url = https://Nicolas_Raoul@bitbucket.org/Nicolas_Raoul/therepo.git, поэтому, если он использует https, он будет запрашивать пароль независимо от ваших ssh-ключей.
Ответ №1
Как поясняется здесь, если вы клонируете URL-адрес SSH, вам не нужно вводить имя пользователя/пароль каждый раз, когда вы нажимаете/тянете. Проверьте выше ответ @manojlds
Но если вы хотите клонировать HTTPS и хотите, чтобы каждый раз не вводить имя пользователя/пароль, вы можете хранить учетные данные в кеше с помощью следующей команды:
git config —global credential.helper ‘cache —timeout 3600’
где 3600 (секунд) означает 1 час, вы можете изменить его согласно вашему требованию.
Ответ №2
Он уже ответил выше. Я обобщу шаги, которые нужно проверить выше.
запустите 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.
Refer: https://help.github.com/articles/changing-a-remote-s-url/
Ответ №3
В случае HTTP-запроса также можно вставить учетные данные (с паролем) прямо в URL-адрес:
http://username:password@bitbucket.org/…
Это позволит сэкономить боль, чтобы снова получать ваши учетные данные. Просто измените свой .git/config (url).
Ответ №4
Привет гуглеры из будущего.
В MacOS> = High Sierra ключ SSH больше не сохраняется в KeyChain по причинам.
Использование ssh-add -K больше не сохраняется и перезапускается.
Вот 3 возможных решения.
Я успешно использовал первый метод. Я создал файл с именем config в ~/.ssh:
Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa Ответ №5
Ни один из этих ответов не помог мне, оказалось, что моя проблема немного отличалась. Это был ssh, который спрашивал мой пароль каждый раз перед отправкой ключа. Так что я должен был связать свой пароль с этой командой:
ssh-add -K ~/.ssh/id_rsa
Затем он запросит ваш пароль и сохранит его. Это может быть решением, которое вы ищете, если каждый раз, когда вы запрашиваете пароль, он говорит
Введите кодовую фразу для ключа ‘/Users//.ssh/id_rsa’:
Больше информации здесь
ПРИМЕЧАНИЕ. Я успешно использовал это на своем компьютере Mac, но, как указал @Rob Kwasowski ниже, опция K в верхнем регистре уникальна для Mac. Если не на Mac, вам нужно использовать строчные k (что, вероятно, работает и для Mac, но я не проверял).
Ответ №6
-
Шаг 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 часа - Шаг 3: Запустите команду git
который запросит у вас пароль, и учетные данные подскажут вам
и сохраните свой пароль.
Ответ №7
Следующее предполагает доступ к командной строке через iTerm/Terminal для битбакета.
Для MacOS Sierra 10.12.5 моя система проявила эквивалентную проблему – запрос моей кодовой фразы SSH для каждого подключения к битбакету.
Проблема связана с обновлениями OpenSSH в macOS 10.12.2, которые описаны здесь в Техническая нота TN2449.
Вы очень хорошо можете адаптировать свое решение, но следующее будет работать при добавлении в ваш файл ~/.ssh/config:
Host * UseKeychain yes
Для получения дополнительной информации о конфигурациях ssh, посмотрите man-страницы для ssh_config:
% man ssh_config
Еще одна вещь: есть хорошая запись на суперпользователя здесь, где обсуждаются эта проблема и различные решения в зависимости от ваших потребностей и установка.
Ответ №8
Возможно, вам придется дважды проверить свой личный файл SSH. Вы можете руководить BitBucket, чтобы посмотреть на другой/неправильный закрытый ключ на эквивалентный открытый ключ, который вы сохранили на BitBucket.
Проверьте это с помощью tail ~/.ssh/config – вы увидите что-то похожее на:
Host bitbucket.org HostName bitbucket.org IdentityFile ~/.ssh/personal-bitbucket-ssh-key
Помните, что добавление дополнительных идентификаторов (например, работы и дома) может быть выполнено с помощью команды ssh-add, например:
ssh-keygen -t rsa -C «companyName» -f «companyName» ssh-add ~/.ssh/companyName
После того, как вы подтвердите, какой секретный ключ просматривается локально, вы можете воспользоваться своим общедоступным эквивалентом, в этом случае:
cat ~/.ssh/personal-bitbucket-ssh-key.pub | pbcopy
И вставьте этот шифр на BitBucket. Теперь ваши git push (при условии, что вы используете SSH-клон, как указывали вышеупомянутые ответы), разрешены без пароля, так как ваше устройство признано дружественным.
Надеюсь, это поможет кому-то разобраться.
Ответ №9
Со мной, хотя я побежал ‘git clone ssh://git@stash.xxx.com: 7999/projName/projA.git’ Мне все еще было предложено ввести пароль для этого нового репо, который я клонировал, поэтому, сравнивая его.git/config в другие репозитории, которые работают. Он оказался URL-адресом в разделе [remote “origin”], он был установлен в путь ssh выше для нового репо, но был установлен на https: xxx для рабочего,
Ответ №10
У меня были другие странности при входе в систему. Я столкнулся с чем-то, что казалось совершенно глупым, но сработало в моем случае. Просто перейдите на связку ключей MacOS. Найдите значок блокировки входа в систему на боковой панели. Нажмите, чтобы выйти, а затем нажмите, чтобы войти. Звучит глупо, но это решило мои проблемы. Стоит выстрел.
Ответ №11
Я клонировал репозиторий с HTTPS-URL вместо SSH-URL, поэтому даже после добавления SSH-ключа он запрашивал у меня пароль в Bash Shell.
Я просто отредактировал файл ./.git/config и изменил значение переменной url, просто заменив https:// на ssh://
Например
[core] … … … [remote «origin»] url = https://<username>@bitbucket.org/<username>/<repository_name>.git fetch = +refs/heads/*:refs/remotes/origin/* … … …
Изменился на:
[core] … … … [remote «origin»] url = ssh://<username>@bitbucket.org/<username>/<repository_name>.git fetch = +refs/heads/*:refs/remotes/origin/* … … …