Вопрос или проблема
Ниже приведена команда, используемая для попытки сохранить 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:
- Откройте PuTTYgen.
- Нажмите на кнопку "Generate".
- Перемещайте мышь по пустой области окна для создания случайных данных.
- После генерации ключа сохраните приватный ключ (например,
id_rsa.ppk
) на вашем компьютере. - Скопируйте текст открытого ключа из поля "Public key for pasting into OpenSSH authorized_keys file".
Шаг 2: Добавление открытого ключа на сервер
Чтобы сервер мог аутентифицировать вас с помощью ключа, необходимо добавить открытый ключ в файл ~/.ssh/authorized_keys
на сервере:
- Подключитесь к вашему серверу через SSH с использованием пароля.
- Если папка
~/.ssh
не существует, создайте её:mkdir -p ~/.ssh chmod 700 ~/.ssh
- Создайте или отредактируйте файл
authorized_keys
:nano ~/.ssh/authorized_keys
- Вставьте открытый ключ, который вы скопировали из PuTTYgen.
- Сохраните изменения и закройте редактор.
- Убедитесь, что файл
authorized_keys
имеет правильные права доступа:chmod 600 ~/.ssh/authorized_keys
Шаг 3: Использование Plink с SSH-ключом
Теперь, когда ваш сервер настроен для аутентификации по 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 на сервере заданы корректно.