Windows: Терминал не может использовать ключи SSH PuTTY

Вопрос или проблема

У меня есть проблема, когда я пытаюсь использовать SSH через терминал. Я знаю, что в Windows нужно использовать PuTTY для упрощения таких соединений, и он работает нормально при подключении к удаленным серверам, которые имеют публичную версию моего файла key.ppk.

Проблема в том, что при использовании PowerShell/Git Bash я не могу загрузить что-либо через SSH. Он грузит бесконечно на следующем экране:

Демонстрация бесконечного экрана загрузки

У меня мой key.ppk загружен в списке ключей Pageant:

Список ключей Pageant

Теперь, это не было проблемой до сих пор, потому что я в основном управлял своими SSH-соединениями через сессии PuTTY и также через Git-клиент (я использую GitKraken), который, насколько мне известно, использует Plink.

Но теперь, в рабочем проекте мне нужно предоставить свой приватный SSH-ключ в директории, чтобы сборка Docker могла его получить и получить доступ к репозиториям компании (мой публичный ключ уже загружен в мой аккаунт BitBucket). Конечно, это не работает.

Итак, у меня есть два вопроса:

  • Как сделать так, чтобы мой SSH-ключ был доступен для использования в терминале
  • Также мне хотелось бы узнать, как получить версию OpenSSH моего ключа, чтобы сохранить его как файл без расширения id_rsa в упомянутой директории репозитория для сборки Docker

Я знаю, что используя PuTTY можно сделать последнее (Меню Конверсия > Экспортировать ключ OpenSSH), но я все еще не знаю, достаточно ли сохранить его без расширения.

Кстати: я много искал, и есть много вопросов по этому поводу, но ни один из них не был полезен.

Заранее спасибо.

Файл без расширения id_rsa должен быть достаточно. Вот некоторые вещи, которые вы можете попробовать:

  • Если у git bash есть утилита file, вы можете запустить ее на ssh-ключе (file id_rsa), чтобы проверить, что это правильный тип файла.
  • Переместите ключ в папку с названием “.ssh” в вашей директории пользователя Windows. Я не помню, есть ли у git bash своя отдельная директория пользователя. Если да, вы должны использовать именно ее.

Если ничего из этого не сработает, вы можете попробовать использовать ssh-agent от OpenSSH:

# запустить ssh-agent в фоновом режиме
$ eval $(ssh-agent -s)
> Agent pid 59566
$ ssh-add ~/.ssh/id_rsa # (или тот путь, где у вас находится ssh-ключ)

источник

Ответ или решение

Конечно! Давайте разберемся с вашей проблемой использования SSH-ключей PuTTY в терминале Windows и получением OpenSSH версии вашего ключа.

Как сделать SSH-ключ доступным для использования в терминале

  1. Конвертация ключа из формата PuTTY в OpenSSH:

    • Запустите PuTTYgen.
    • Загрузите ваш существующий ключ .ppk (File > Load).
    • После загрузки ключа, выберите Conversions в меню и выберите Export OpenSSH key.
    • Сохраните ключ как id_rsa (без расширения) в директории C:\Users\<Ваше_имя_пользователя>\.ssh.
  2. Настройка правильных прав доступа:

    • Откройте Git Bash или PowerShell и выполните следующую команду, чтобы установить правильные права доступа к файлу:
      chmod 600 ~/.ssh/id_rsa
  3. Перемещение ключа в правильную директорию:

    • Убедитесь, что ключ находится в папке .ssh в вашем домашнем каталоге (C:\Users\<Ваше_имя_пользователя>\.ssh). Если папка .ssh не существует, создайте её.

Использование ssh-agent для управления ключами

  1. Запустите ssh-agent:

    • В терминале (Git Bash или PowerShell) выполните команды:
      eval $(ssh-agent -s)
    • Это запустит ssh-agent и выдаст его PID.
  2. Добавьте ключ в ssh-agent:

    • Выполните команду:
      ssh-add ~/.ssh/id_rsa
    • Если ключ успешно добавлен, вы сможете использовать SSH для подключения к вашим удалённым серверам.

Проверка типа файла ключа

Для проверки того, что ваш ключ действительно является валидным SSH-ключом, вы можете использовать команду file (если она доступна в вашей среде):

file ~/.ssh/id_rsa

Заключение

Теперь ваш SSH-ключ должен корректно работать в терминале Windows (включая PowerShell и Git Bash). Используйте ssh команды для подключения к вашим удалённым серверам. Хранение вашего приватного ключа в формате id_rsa без расширения является стандартным и не вызывает проблем, если у вас правильные права доступа.

Если вы по-прежнему сталкиваетесь с проблемами, возможно, стоит обратить внимание на настройки сети или параметры брандмауэра, которые могут блокировать ваш SSH-трафик. Надеюсь, это поможет вам успешно завершить вашу задачу!

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

Капча загружается...