Как использовать Bash / Ожидайте, чтобы проверить, работает ли вход SSH

Моя команда управляет многими серверами, и политика компании требует, чтобы пароли на этих серверах менялись каждые пару недель. Иногда наша официальная база паролей по какой-либо причине устаревает (люди обычно забывают ее обновить), но иногда мы не можем ее идентифицировать до нескольких месяцев, поскольку мы нет последовательно использовать каждый сервер.

Я хочу написать скрипт, который будет вычищать пароли из базы данных и использовать эти пароли для попытки (ssh) входа на каждый сервер каждую ночь, и отправлять письмо с результатами в команду. Я могу почистить базу данных для входа в систему, но яЯ не уверен, как проверить, был ли вход в систему ssh успешным или нет.

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

Я отключаю аутентификацию с открытым ключом, указав следующий файл:

PasswordAuthentication=yes
PubkeyAuthentication=no

Мои попытки ожидаемого сценария:

# $1 = host, $2 = user, $3 = password, $4 = config file
expect -c "spawn ssh $2@$1 -F $4
expect -re \".*?assword.*?\"
send \"$3\n\"
...
send \'^D\'"

Я думал, может быть, статус выхода может указывать на успех? не мог»не могу найти что-либо на страницах руководства.

Ответы на вопрос(4)

Ваш ответ на вопрос