Я создал ключ ssh, добавил его на gitlab и следовал инструкциям. Когда я делаю push из git bash, все работает нормально, меня постоянно раздражает ввод парольной фразы каждый раз. Но когда я пытаюсь нажать из vsCode, он не запрашивает парольную фразу и выдает ошибку
Git: [email protected]: Permission denied (publickey,keyboard-interactive).
Есть ли способ исправить это? И дополнительная помощь: как я могу запретить ему каждый раз спрашивать парольную фразу.
Я знаю, что есть похожие вопросы о моей бонусной помощи, но я ничего не нашел о проблеме с vsCode. Я использую виндовс 11.
Извините, если название вводит в заблуждение.
Обратите внимание, что ssh делает предлагает своего рода компромисс с помощью того, что он называет «агентом ssh». Здесь агент получает ключ, а программы запрашивают ключ у агента. Агенту требуется парольная фраза, если она есть, чтобы он мог расшифровать и удерживать ключ. Это означает, что ключ доступен только во время работы агента, но если кто-то когда-либо скомпрометирует агент, это само по себе довольно плохо. Опять же, у вас не может быть двух способов: выберите способ (используйте агент, не используйте агент) и живите с ним.
и как мне использовать этот агент ssh?
В Windows? Понятия не имею. В macOS он предустановлен, вы просто запускаете ssh-add
в любом окне Терминала. В Linux есть куча вариантов его установки.
возможно, это то же самое на окнах с git bash. я попробую, когда вернусь домой
Может быть (я не знаю, есть ли является, просто «может быть») также какая-то проблема с использованием агента с VSCode. Я думаю, что здесь на SO были вопросы об этом.
но стоит ли оставлять его без кодовой фразы? если я не ошибаюсь, должно быть что-то, что добавит мое устройство в белый список. поправьте меня, если я ошибаюсь
Цель фразы-пароля обычно состоит в том, чтобы зашифровать закрытый ключ. Это делает ключевой файл сам по себе бесполезным для злоумышленника. Но вы не должны нигде использовать закрытый ключ, так как это делает вашу систему уязвимой. Лучше использовать открытый ключ.
но когда я создал свою учетную запись gitlab и первый проект в ней, он сказал, что у меня должен быть ключ ssh. не могли бы вы объяснить мне немного больше, что вы имеете в виду под закрытым ключом и открытым ключом в gitlab и какова их цель
SSH используется для удаленной передачи файлов, управления сетью и удаленного доступа к операционной системе. SSH использует пару ключей, то есть открытый и закрытый. Например, если вы использовали ssh-keygen на своем сервере. в папке .ssh в домашнем каталоге у него будут эти 2 файла id_rsa.pub и id_rsa. Вы должны скопировать id_rsa.pub в учетную запись gitlab. Открытый ключ содержит идентификатор, который может быть расшифрован с помощью закрытого ключа на сервере.
Я скопировал .pub в свою учетную запись gitlab.
Тогда вам не понадобится кодовая фраза. В системе реального мира мы также не будем ее использовать.
хорошо спасибо. есть идеи о моей проблеме с vsCode?
да, удали фазу доступа, это не выдаст тебе ошибку
Обратите внимание, что парольную фразу запрашивает не Гит. Это сш. Ssh хранит данные вашего ключа в зашифрованных файлах, зашифрованных парольной фразой; и ssh не использовал кодовую фразу спасти, поэтому ssh снова нужна кодовая фраза, чтобы де-зашифровать файлы, чтобы получить ключи. Если ssh может получить ключ без необходимости расшифровывать файлы, ssh не понадобится ключ. Если ssh может получить ключ без расшифровки файла, ключ менее безопасен. У вас не может быть двух способов: выберите один и живите с ним.