Проверка ssh ключи имеет пароли

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

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

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

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

Спасибо!

8
задан 19.10.2010, 14:01

1 ответ

Если файл ключей использует пароль, он имеет "Proc-тип": набор атрибута со словом, "ЗАШИФРОВАННЫМ" добавленный.

Так, можно определить, использует ли файл ключей пароль путем прокручивания его 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 параметр, следующим образом:

# list all keyfiles
HOMES=/home /mnt/nfs_home
find $HOMES -maxdepth 3 -type f -path '*/.ssh/id* -name "id_[dr]sa*" -print
11
ответ дан 07.12.2019, 14:03

Теги

Похожие вопросы