У меня есть группа пользователей, которые с ключами SSH имеют доступ к учетным записям на других серверах. В настоящее время у меня есть скрипт, который собирает открытые ключи ssh и распределяет их по правильной учетной записи на правильных серверах.
То, что я хочу сделать, это заставить этот скрипт проверить, что у каждого данного ssh-ключа пользователя есть пароль перед тем, как принять открытый ключ и распространить его.
Я попробовал несколько вещей, как используя ssh-agent
и ssh-add
затем проблема возникает , когда ssh-add
спрашивают на ключевую фразу.
Есть ли способ получить что-то вроде openssl
проверки парольной фразы, слегка потерпеть неудачу с кодом возврата, 1
если ключ имеет парольную фразу?
Спасибо!
Ответы:
Если в ключевом файле используется фраза-пароль, он имеет атрибут «Proc-Type:», к которому добавлено слово «ENCRYPTED».
Таким образом, вы можете определить, использует ли ключевой файл фразу-пароль, пропустив ее
find
иgrep
посмотреть, есть ли в ней строка «ENCRYPTED».печатает список файлов с парольными фразами. Затем вы можете сопоставить их со списком всех ключевых файлов, чтобы выделить те, которые не используют парольную фразу. Список всех ключевых файлов можно получить, например,
-exec
пропустив параметр, следующим образом:источник
Proc-Type
заголовок не записывается в файл, несмотря на его шифрование.