Назад | Перейти на главную страницу

Как сделать ssh-агент доступным на экране после выхода из системы

Как лучше всего включить команду, работающую на экране на первом компьютере, чтобы продолжать выполнять команды на втором компьютере после того, как я больше не подключен к первому?

Вот предыстория. У меня есть давно работающая команда, которая должна регулярно собирать информацию с других машин. Он делает это, отправляя команды ssh и читая вывод. В настоящее время это работает через агентов ssh, потому что я вошел в систему с ForwardAgent.

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

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

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

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

Вы пробовали смотреть на "nohup"?

http://linux.101hacks.com/unix/nohup-command/

Похоже, в данном случае это может быть вам полезно.

Вы можете увидеть дополнительную информацию, используя $ man nohup