Вопрос Как сохранить ключевую фразу ключевого слова SSH для автоматического процесса?


Я создал ключ RSA, защищенный паролем. Открытый ключ устанавливается на удаленном сервере в authorized_keys в пользовательском .ssh каталог.

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

Я хочу использовать этот ключ для сервера Munin для SSH в узел Munin и получать данные, поэтому процедура выходит из строя из-за парольной фразы.

Я подумал о двух вариантах:

  1. Удалите кодовую фразу из ключа.
  2. Сохраните кодовую фразу где-нибудь, может быть, в файле конфигурации?

Есть ли лучшее решение?

я думаю ssh-agent должен делать что-то подобное, но я не могу найти краткую информацию об этом.


2
2018-04-14 13:31


происхождения




ответы:


Вы можете использовать ssh-agent сделать это. Он позволяет хранить кодовую фразу в памяти, а не на диске. Существует хорошее объяснение этого для пакетных заданий здесь: http://www.akadia.com/services/ssh_agent.html,

По сути, вы:

  1. Бег ssh-agent в фоновом режиме как пользователь, который будет инициировать соединение SSH.
  2. Использовать ssh-add чтобы добавить ключ к агенту. Он будет запрашивать кодовую фразу.

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

Точка зрения, которую вы пытаетесь сделать, - это то, чего вы пытаетесь достичь, имея кодовую фразу на используемом ключе, учитывая, что это автоматизированная система.

  1. Если вы используете ключ с парольной фразой и храните его в файле конфигурации, то любой, кто получает доступ к ключу, скорее всего, также получит доступ к файлу конфигурации, так как оба они должны быть доступны одному и тому же пользователю.
  2. Если вы используете ssh-agent для хранения кодовой фразы он все равно должен работать на той же машине, что и ключ. Было бы сложнее получить кодовую фразу из памяти, чем из файла, но вы только сделали свою работу более трудной, чем невозможно. Однако, если они получают ключ без доступа к машине (например, из резервной копии), этот параметр более безопасен.
  3. Если вы не зададите кодовую фразу, у кого-то, у кого есть ключ, нет никакой дополнительной работы, чтобы иметь возможность использовать его.

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

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

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


2
2018-04-14 15:03