Вопрос или проблема
Я установил клиент OpenVPN 3 на свой Debian Bookworm, но каждый раз, когда я запускаю демона, он спрашивает Пароль для закрытого ключа:. Как я могу сохранить пароль? Надоедает вводить пароль каждый раз при загрузке. Клиент OpenVPN Connect для Windows имеет опцию Сохранить пароль закрытого ключа, но я не нашел ничего подобного в терминальном клиенте для Linux.
Сервер OpenVPN работает на MikroTik RouterOS 7.15.2.
Конфигурация клиента:
dev tun
proto tcp-client
remote *****.com
port 1194
nobind
persist-key
persist-tun
client
tls-client
remote-cert-tls server
verb 6
mute 10
cipher AES-256-GCM
redirect-gateway def1
auth SHA1
<auth-user-pass>
*****
*****
</auth-user-pass>
<ca>
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN ENCRYPTED PRIVATE KEY-----
-----END ENCRYPTED PRIVATE KEY-----
</key>
У меня такая же проблема, и я ищу решение, как сохранить пароль закрытого ключа. В моем случае Ubuntu 24.04 все еще показывает “Пожалуйста, введите пароль с помощью systemd-tty-ask-password-agent” в терминале. Есть идеи, как это исправить?
Ответ или решение
Для решения проблемы с вводом пароля для закрытого ключа OpenVPN на Debian Bookworm, вы можете применить несколько стратегий. Обычно это связано с желанием избежать постоянного ввода пароля при запуске клиента OpenVPN. Давайте рассмотрим пошаговые рекомендации по хранению пароля ключа.
1. Использование askpass
Параметр askpass
позволяет вам хранить пароль в специальном файле или привязывать его к вашему графическому окружению. Это обеспечит автоматический доступ к паролю при запуске OpenVPN.
-
Установите
ssh-askpass
(если он еще не установлен):sudo apt install ssh-askpass
-
Запишите пароль в переменную окружения:
Вы можете создать скрипт, который будет устанавливать переменную окружения перед запуском OpenVPN:export key_pass="Ваш_пароль"
-
В конфигурации OpenVPN укажите использование переменной:
В файл конфигурации OpenVPN добавьте следующее:pass.txt < /dev/tty < /path/to/scripts/script.sh
2. Хранение пароля в текстовом файле
Хотя хранение паролей в текстовом файле не является самой безопасной практикой, это один из простейших способов решить вашу проблему:
-
Создайте файл для хранения пароля:
Например, создайте файлpass.txt
:echo "ваш_пастсворд" > ~/pass.txt
-
Установите разрешения для файла:
Необходимо ограничить доступ к этому файлу:chmod 600 ~/pass.txt
-
Измените конфигурацию OpenVPN:
Обновите вашу конфигурацию OpenVPN, добавив строку для указания сокрытого пароля:auth-user-pass ~/pass.txt
3. Использование systemd
для управления вопросами паролей
Если вы используете систему, основанную на systemd
, вы можете настроить его для обработки паролей через systemd-tty-ask-password-agent
.
-
Создайте файл сервиса для OpenVPN:
sudo nano /etc/systemd/system/openvpn@client.service
Обратите внимание на следующие строки:
[Service] ExecStart=/usr/sbin/openvpn --config /path/to/your/config.ovpn --askpass /path/to/pass.txt
-
Убедитесь, что файл пароля защищен:
Установите права доступа к файлу пароля, чтобы только вы могли его читать:chmod 600 /path/to/pass.txt
-
Запустите и проверьте сервис:
Запускайте OpenVPN через systemd:sudo systemctl start openvpn@client
Заключение
Использование метода хранения пароля может существенно упростить вашу работу с OpenVPN, однако стоит помнить о безопасности. Рекомендуется периодически менять свои пароли и использовать дополнительные средства защиты, такие как многократная аутентификация. Выбор лучшего подхода будет зависеть от ваших потребностей в безопасности и удобстве.
Соблюдая предложенные шаги, вы сможете избавиться от необходимости вводить пароль для закрытого ключа при каждой активации OpenVPN на вашем Debian.