Мне нужно автоматизировать соединение openvpn с сервером, который требует от меня ввода пароля.
Я могу сделать это с ожиданием, но я не хочу, чтобы пароль оставался открытым текстом в скрипте.
Я нашел encpass , чтобы помочь зашифровать пароль, который мне просто нужен, и получить его, чтобы получить зашифрованную версию пароля.
Проблема возникает, когда я пытаюсь передать ожидаемый незашифрованный пароль. Насколько я понимаю, ожидать и bash - это 2 разные среды, а bash не может запускаться. На данный момент у меня есть следующее:
#!/usr/bin/env bash
source encpass.sh
password=$(get_secret)
{
/usr/bin/expect <<EOF
spawn openvpn /home/pi/client.ovpn
expect "Enter Private Key Password:"
send $password
interact
EOF
}
Конечный результат: я запускаю это, и он запускает VPN, и сценарий вводит пароль в подсказке.
Если есть более простой способ сделать это, пожалуйста, дайте мне знать.
Я попытался автоматизировать это с помощью только openvpn и переключателя --auth-user-pass, указывающего на файл с паролем в нем, но я не смог пусть и это работает.