Ситуация: Запуск Ubuntu 10.04. У меня есть сценарий bash, который представляет собой набор папок и копирует их на другой хост через ssh. Я скопировал открытый ключ на другой хост, поэтому он не запрашивает пароль. я бегу eval ssh-agent
(с дополнительными кавычками) и ssh-add
кэшировать парольную фразу, и после этого я могу запустить скрипт без запроса в любое время. Все идет нормально.
Проблема: я хочу запустить этот скрипт через задание cron под моим собственным пользователем на данный момент (это всего лишь тестовая установка). Но когда я перезагружаю машину, ssh-agent теряет ключи, которые я добавил через ssh-add, и мне нужно снова выполнить eval ssh-agent & ssh-add, чтобы заставить его работать.
Вопрос: - Как сделать так, чтобы ssh-agent работал постоянно? (поскольку при запуске cronjob пользователь не будет авторизован) - Как мне навсегда сохранить свой rsa_id в ssh-add?
Вам нужно будет оставить пароль в ключе ssh пустым при его создании. Таким образом, вам не нужно будет использовать ssh-agent. Очевидно, что этот выбор имеет последствия для безопасности, но ssh-agent всегда будет требовать от вас первого ввода парольной фразы, если ключ защищен.
Технически вы, вероятно, могли бы использовать ожидать чтобы передать парольную фразу ssh-agent из скрипта - но если вы готовы ввести парольную фразу в скрипт, вы можете просто оставить это поле пустым.
Обычный способ повысить безопасность, если вы следуете этому маршруту, - это разрешить соответствующему ключу доступ только к специально созданной / ограниченной учетной записи на другом сервере.