Git в Bitbucket: всегда запрашивался пароль, даже после загрузки моего общедоступного ключа SSH

Вопрос:Я загрузил свой ~/.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

Вопрос:

Я загрузил свой ~/.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

Ответ №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/* … … …

Оцените статью
Добавить комментарий