Если вы попали на эту статью, я уверен, что вы исчерпали все, что там было. От блогов до случайных скриптов из Stack Overflow. Итак, вот как я решил эту проблему:

Я сделал то же самое — запускал один сценарий за другим, чтобы он заработал, но как кто-то красиво процитировал:

6 часов онлайн-серфинга помогут вам сэкономить 5 минут на чтении документации.

- Автора не помню, но читал в Твиттере

Я устанавливал несколько ключей ssh ​​в Windows 10 (что является определенной головной болью) по сравнению с настройкой в ​​​​Linux / MacOS.

Наткнулся на эту прекрасную статью от Меган Ло, где она подробно описала шаги: Как настроить несколько ключей SSH на вашем компьютере. Прочитайте статью один раз, чтобы убедиться, что вы выполнили все шаги.

Если вы все еще не можете получить решение, проверьте Создание нового ключа SSH и добавление его в ssh-agent и убедитесь, что ваш ключ (не файл .pub), а ключ (приватный файл) добавлен в ssh-агент.

Всякий раз, когда вы добавляете свой ключ ssh, будь то версия .rsa или версия .ed25519, обе версии генерируют два файла:

  1. Открытый ключ — имеет расширение .pub
  2. Закрытый ключ — без расширения .pub, но с тем же именем

Вам необходимо убедиться, что закрытый ключ добавлен в агент ssh. Для этого вам нужно сначала убедиться, что агент ssh запущен. В окнах это можно сделать:

eval `ssh-agent -s`

Убедитесь, что вы нажали это в git bash, а не в powershell или cmd. Это может привести к ошибке, например, «eval не является идентифицируемым термином».

Если вы получили pid ssh-agent, например, этот pid агента 1764, то все готово. PID может отличаться от этого.

Далее вам нужно добавить приватный ключ к ssh-agent. Этот шаг также необходимо выполнить в git bash.

ssh-add ~/.ssh/id_ed25519_gitlab_nh

Используйте ssh-add вместе с полным путем к вашему закрытому ключу ssh. Вот и все.

Попробуйте клонировать репо, и все будет хорошо!

(Если по какой-то причине вы все еще не можете решить эту проблему, проверьте эту статью из официальной документации GitHub: Ошибка: Отказано в доступе (publickey)), а также это из официальной документации GitLab

Как скопировать ключ ssh в windows?

Этот скрипт в git bash скопирует ключ ssh в буфер обмена, чтобы вы могли вставить его на GitHub или GitLab. Убедитесь, что вы скопировали и вставили ключ ssh только с расширением .pub, потому что это «открытый ключ». Другой ключ должен быть добавлен к ssh-агенту, как показано выше.

cat <complete_path_to_ssh_key>.pub | clip

Для Linux

cat <complete_path_to_ssh_key>.pub | xclip

Для MacOS

cat <complete_path_to_ssh_key>.pub | pbcopy

Первоначально опубликовано на adityatyagi.com