Использование защищенных паролем ключей SSH для автоматических сценариев на удаленном сервере

С ПК1 я подключаюсь по SSH к SERVER1 , где у меня есть сценарий bash, который будет выполнять SSH и авторизоваться на SERVER2 используя SSH-ключ, защищенный паролем.

Все работает нормально, когда я вручную выполняю свой сценарий, используя ssh-agent, чтобы загрузить мой защищенный паролем ключ в память и перенаправить его на SERVER2 для аутентификации.

Но использование crontab на SERVER1 обычно дает сбой; как заставить работать следующую команду, используя защищенный паролем ключ SSH?

SERVER1 $ ssh -i ~ / .ssh / somekey.pem SERVER2

0
задан 14 May 2020 в 04:20
1 ответ

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

Это можно обойти, используя какую-то автоматизацию, которая предоставляет пароль из кода (например, используя expect), но в этом случае вам придется где-то сохранять пароль, чтобы передать его на ssh. То есть вы защищаете ключ паролем, но сразу предоставляете пароль, так какой в ​​этом смысл?

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

0
ответ дан 14 May 2020 в 12:25

Теги

Похожие вопросы