У меня есть набор пользователей, у которых с ключами SSH есть доступ к учетным записям на других серверах. В настоящее время у меня есть сценарий, который собирает ssh открытые ключи и распределяет их корректной учетной записи на корректных серверах.
То, что я хочу сделать, заставляют тот сценарий проверять, что у любых данных пользователей ssh ключ есть пароль прежде, чем принять открытый ключ и распределить его.
Я попробовал много вещей, как использование ssh-agent
и ssh-add
и затем проблема возникает когда ssh-add
попросился пароля.
Есть ли способ получить что-то как openssl
для проверки на пароль перестаньте работать немного с кодом возврата 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