Возможно ли с помощью баша написать скрипт, который будет делать подключение по SSH из файла брать имя сервера, а из другого брать пароль, если пароль не подходит то берет следующий
Задача проверить, какой пароль используется на каждом из серверов
Допустим есть файл servers.txt - в нем список серверов
Файл password.txt - там список паролей которые возможно и один из них верный
Итого должен, чтобы при успешном подключение он выводил в файл или еще куда строку - server + password
#!/usr/bin/bash
for HOST in $(cat servers.txt)
do
for PASS in $(cat password.txt)
do sshpass -p $PASS ssh wsadmin@$HOST 'echo Success'
done
done
написал , но теперь вопрос, как правильный пароль перенести в файл?
допустим файл будет вида - password host success
#!/usr/bin/bash
for HOST in $(cat servers.txt); do
for PASS in $(cat password.txt); do
sshpass -p $PASS ssh wsadmin@$HOST 'echo $(whoami) $(hostname) - Success' >> result.txt
done
done
#!/usr/bin/bash
for HOST in $(cat servers.txt); do
for PASS in $(cat password.txt); do
echo -n "Trying $HOST with $PASS: "
sshpass -p $PASS ssh wsadmin@$HOST 'echo $(whoami) $(hostname) - Success' >> result.txt
done
done
да без проблем десяток строк кода https://www.shellhacks.com/ru/ssh-execute-remote-c...
так моно подключиться
соответственно вам нужно сделать цикл в котором вы будете бежать по этим файлам и выполнять команду.
вот пример цикла.
Тут я захожу в бд получаю список баз и каждую из них отдельно бэкаплю.
for i in `mysql -uroot -pпароль -e'show databases;' | grep -v information_schema | grep -v Database`; do mysqldump -uroot -pпароль $i > /var/backup/mysql/$i/`date +%Y-%m-%d`-$i; gzip /var/backup/mysql/$i/`date +%Y-%m-%d`-$i;done