Как хранить SSH-ключ, не пытаясь войти с помощью пароля, используя Plink?

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

Ниже приведена команда, используемая для попытки сохранить SSH-ключ, даже несмотря на то, что мы пытались принудительно выйти из команды, она все равно запрашивает пароль.

echo y | plink -ssh [email protected] "exit".

Ключ хоста сервера не кэширован в реестре. У вас
нет гарантии, что сервер является тем компьютером, который
вы думаете.

Отпечаток ключа rsa2 сервера:
ssh-rsa 2048 a8:8a:f6:67:b4:42:03:09:ae:4b:57:ff:85:c0:94:bf
Если вы доверяете этому хосту, введите "y", чтобы добавить ключ в
кэш PuTTY и продолжить подключение.
Если вы хотите продолжить подключение только один раз,
не добавляя ключ в кэш, введите "n".
Если вы не доверяете этому хосту, нажмите Enter, чтобы прервать
подключение.

Сохранить ключ в кэше? (y/n) 
[email protected]'s password:

Отпечаток ключа и аутентификация по ключу — это две разные истории.

echo y | plink -ssh [email protected] "exit".

Необходимо избежать появления вопроса “Сохранить ключ в кэше? (y/n)” в следующий раз.
Вам необходимо сгенерировать ключ аутентификации, чтобы использовать plink без пароля для вашего сервера.

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

Чтобы хранить SSH-ключ без попытки входа с паролем, используя Plink, вам необходимо выполнить несколько шагов по настройке аутентификации с помощью ключей. Вот подробная инструкция:

Шаг 1: Генерация SSH-ключа

Если у вас еще нет SSH-ключа, вам нужно его сгенерировать. Это можно сделать с помощью PuTTYgen:

  1. Откройте PuTTYgen.
  2. Нажмите на кнопку "Generate".
  3. Перемещайте мышь по пустой области окна для создания случайных данных.
  4. После генерации ключа сохраните приватный ключ (например, id_rsa.ppk) на вашем компьютере.
  5. Скопируйте текст открытого ключа из поля "Public key for pasting into OpenSSH authorized_keys file".

Шаг 2: Добавление открытого ключа на сервер

Чтобы сервер мог аутентифицировать вас с помощью ключа, необходимо добавить открытый ключ в файл ~/.ssh/authorized_keys на сервере:

  1. Подключитесь к вашему серверу через SSH с использованием пароля.
  2. Если папка ~/.ssh не существует, создайте её:
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
  3. Создайте или отредактируйте файл authorized_keys:
    nano ~/.ssh/authorized_keys
  4. Вставьте открытый ключ, который вы скопировали из PuTTYgen.
  5. Сохраните изменения и закройте редактор.
  6. Убедитесь, что файл authorized_keys имеет правильные права доступа:
    chmod 600 ~/.ssh/authorized_keys

Теперь, когда ваш сервер настроен для аутентификации по SSH-ключам, вы можете использовать Plink для подключения без пароля.

Пример команды

Используйте следующую команду для подключения:

plink -ssh -i путь_к_вашему_приватному_ключу.ppk [email protected]

Где путь_к_вашему_приватному_ключу.ppk — это путь к вашему приватному ключу, а [email protected] — это адрес вашего сервера.

Шаг 4: Кеширование ключа для предотвращения запроса на подтверждение

Чтобы избежать запроса на добавление ключа сервера в кеш (host key), можно предварительно выполнить следующую команду:

plink -ssh -i путь_к_вашему_приватному_ключу.ppk -batch [email protected] "echo 'connected'" 

Флаг -batch отключает интерактивный режим, позволяя вам избежать запросов.

Заключение

Теперь вы должны иметь возможность подключаться к вашему серверу через Plink без необходимости вводить пароль. Если вы следовали всем шагам, то аутентификация с помощью ключей должна работать корректно. Если у вас возникли проблемы, убедитесь, что ключи правильно настроены и что права доступа к файлам SSH на сервере заданы корректно.

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

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