Ответ 1
Кажется, что на моем mac, если я не запускаю ssh-add -k ~/.ssh/id_rsa
тогда я получаю ошибки о наличии плохого ключа ssh.
Это также, похоже, работает на Ubuntu (18.04).
Хорошо, поэтому у меня есть репозиторий git где-то на сервере в другой комнате, и я раньше использовал SourceTree, но это так раздражало проблему index.lock, и, по-видимому, это самая распространенная проблема, большинство разработчиков сталкивается с SourceTree. Хотя я обнаружил, что он исправит себя, если я подожду несколько минут до полутора дней, но у меня нет времени ждать, и я думаю, что он побеждает цели использования клиента git вообще.
Но дело не в SourceTree... Итак, я нашел GitKraken, и это выглядит круто, и у меня никогда не было проблемы с index.lock. Единственная проблема - я не могу нажать и вытащить на свой сервер в другой комнате. Я сконфигурировал свои ключи ssh и это. Я могу нажать/вытащить на счет github/bitbucket, но не следующую комнату. Если когда-либо вы столкнулись с такими проблемами или когда-нибудь у вас будет небольшая идея о том, как я, возможно, смогу решить свою проблему, сообщите мне об этом. Я уже связался с группой поддержки, но ответа очень мало.
Кажется, что на моем mac, если я не запускаю ssh-add -k ~/.ssh/id_rsa
тогда я получаю ошибки о наличии плохого ключа ssh.
Это также, похоже, работает на Ubuntu (18.04).
В macOS у меня была пара Private/Public key, и GitKraken успешно использовал ее для передачи в хранилище битовых корзин. Файл открытого ключа ~/.ssh/id_rsa.pub формат похож на ответ Джоша Паттерсона:
ssh-rsa AAAAB3NzaC1yc2...8swZ0Ew==
Я создал второй репозиторий Bitbucket. В какой-то момент gitKraken больше не мог продвигаться к первому репо. Я все еще мог сделать толчок к первому репо из командной строки терминала, вводя фразу-пароль вручную.
GitKraken сказал: "Сконфигурированный ключ SSH имеет недопустимый формат. Пожалуйста, убедитесь, что ваш ключ действителен и является ключом типа RSA".
Как и в ответе Coming Sun, я перешел к GitKraken Preferences/Authentication/General. В отличие от ответа Coming Sun, у меня уже был закрытый/открытый ключ, и я не хотел создавать новую пару. Вместо этого я выбрал "Использовать локальный агент SSH". Это исправил GitKraken для меня.
Уже много ответов, и я думаю, что большинство из них очень полезны. Я все еще добавлю сюда дополнительную информацию, потому что я не думаю, что какой-либо ответ на самом деле решает проблему полностью.
Это то, что я сделал, чтобы решить это с самого начала, сидя на MacOS.
ssh-keygen
для генерации ключей. Я предоставил пароль.ssh-add -K ~/.ssh/id_rsa
, чтобы сохранить мою личность внутри моего локального агента ssh. Это важно. Обратите внимание, что это прописная буква -K, что означает, что я тоже хочу сохранить свою парольную фразу внутри локального агента ssh, это заставит его хранить мою парольную фразу в цепочке для ключей, поэтому мне не нужно повторно - входите в нее постоянно, очень аккуратно!~/.ssh/id_rsa.pub
на свой сервер (bitbucket.org, azure devops, github или w/e).git fetch
из терминала или делаете git fetch из Gitkraken, это должно сработать. Gitkraken будет использовать собственный ssh-агент вашего компьютера, который мы настроили для успешной аутентификации.Надеюсь, это поможет некоторым.
Обновление: мне также пришлось включить ssh-add -K ~/.ssh/id_rsa
в мой ~/.bash_profile
, чтобы он автоматически загружался, иначе вам придется запускать эту команду при каждом перезапуске компьютера.
Я начал работать, используя комбинацию ответа gabeios, а также включив и выключив опцию "использовать локальный агент ssh" (настройки gitkraken> аутентификация> "использовать локальный агент ssh").
Я выключил его и попробовал gabeios answer, но он не сработал, но затем включил его и попытался снова с gabeios answer. По какой-то причине со мной сработало какое-то сочетание. Я на маке. Надеюсь, поможет.
Поэтому, если это помогает кому-то другому (или мне когда-то я забыл), похоже, что GIT Kraken очень разборчив в отношении формата открытого ключа и НЕ поддерживает то, что я думаю о стандартном формате. Обычно я вижу ключи, которые выглядят так:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20181204"
AAAAB3NzaC1yc2EAAAABJQAAAQEA5kpsxjtSZ4kMyKIBy0ASQShN/BSAEa7d4lrL
...
hA2TX0L2fLKDkpzCngkDgGbLDxj5dXTN4gpnZdr7lzMciFQu0uhfTLmeYgi1nFOi
KfJ+cQWg3uOHQ0zd8/2GyvfARWy3nZDFoLSQTrbErkX8swZ0Ew==
---- END SSH2 PUBLIC KEY ----
Гит Кракен, похоже, настаивает на этом формате:
ssh-rsa AAAAB3NzaC1yc2...8swZ0Ew==
Вы можете видеть, что это "тот же" ключ, но он должен быть в более простом формате, чтобы Git Kraken был доволен этим.
Спасибо, Джош
Габейо ответ работает. Чтобы избежать вызова ssh-add -K ~/.ssh/id_rsa
в терминале каждый раз, его можно добавить в файл профиля.
Вы можете поместить его в ~/.bash_profile
:
поместите
ssh-add -K ~/.ssh/id_rsa
в ваш~/.bash_profile
Но для этого необходимо открыть терминал.
В моем случае я добавил его в /etc/profile
. Добавьте строку, ssh-add -K ~/.ssh/id_rsa
внизу /etc/profile
. Вот инструкции в терминале:
$sudo chmod 644/etc/profile
$sudo nano/etc/profile
ssh-add -K ~/.ssh/id_rsa
.Это работает для меня, не открывая терминал каждый раз. Надеюсь, это поможет.
В моем случае мне удалось настроить SSH в моем GitKraken, тщательно выполнив все шаги "Настройка SSH для Git в XXX" (в моем случае Windows).
https://confluence.atlassian.com/bitbucket/set-up-an-ssh-key-728138079.html
Надеюсь, это вам тоже поможет...
Настройки...> Аутентификация
Я просто должен был переключиться на
[] Использовать локальный агент SSH
Вместо использования пути к моему локальному SSH