Проверка парольных фраз ключей ssh

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

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

Я пробовал несколько вещей, как с помощью ssh-agent и ssh-add и тогда проблема приходит, когда ssh-add задаю пароль.

есть ли способ сделать что-то вроде openssl чтобы проверить парольную фразу, слегка сбой с кодом возврата 1 если ключ имеет пароль?

спасибо!

25
задан Peter Farmer
28.12.2022 22:06 Количество просмотров материала 3024
Распечатать страницу

1 ответ

если ключевой файл использует парольную фразу, к нему добавляется атрибут " Proc-Type: "со словом" ENCRYPTED".

таким образом, вы можете определить, если файл использует пароль, запустив его через find и grep чтобы увидеть, если он имеет строку "зашифрованный".

# list keyfiles that USE a passphrase
HOMES=/home /mnt/nfs_home
find $HOMES -maxdepth 3 -type f -path '*/.ssh/id* -name "id_[dr]sa*" -exec grep -q "ENCRYPTED" {} \; -print

выводит список файлов, которые есть фраз. Затем вы можете сопоставить их со списком всех ключевых файлов, чтобы выделить те, которые не используют парольную фразу. Список всех ключевых файлов может быть получается, например, оставив -exec параметр out, следующим образом:

# list all keyfiles
HOMES=/home /mnt/nfs_home
find $HOMES -maxdepth 3 -type f -path '*/.ssh/id* -name "id_[dr]sa*" -print
11
отвечен Jawa 2022-12-30 05:54

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх