В настоящее время я ищу решение для выполнения удаленных команд на нескольких локальных серверах из входного файла, содержащего «user: password» в следующем формате:
jboss5:manager:192.168.1.101
database1:db01:192.168.20.6
server8:localnet:192.168.31.83
x:z:192.168.1.151
test:mynet:192.168.35.44
.... and others
Некоторые команды, которые я хочу выполнить удаленно:
cd $HOME; ./start_script.sh; wget 192.168.1.110/monitor.sh; chmod +x monitor.sh; ./monitor.sh
Я знаю, что есть утилита под названием «sshpass», но не знаю, как я могу применить эту утилиту для своих нужд.
Я открыт для любых идей, чтобы удовлетворить мою потребность, любая помощь будет очень признательна!
Спасибо
Ответы:
Вместо использования аутентификации по паролю я рекомендую вам использовать аутентификацию по открытому ключу, она намного надежнее обычного пароля и вам не нужна
sshpass
. Просто создайте приватные ключи без паролей и используйтеssh
опцию-i
, но если вы все еще хотите использовать пароли, вот решение:источник
fail2ban
на серверах и не по умолчанию SSH-порт (22), действительно опасно использовать простые пароли, если серверы подключены к дикому Интернету.