使用输入启动时自动运行脚本?

使用输入启动时自动运行脚本?

我想在 Debian 机器启动时运行 OpenVPN,它也会自动填充服务器登录名和密码。我一直不得不在通过 SSH 启动并与 tux 分离后不断运行,但宁愿消除所有麻烦。

以下是 SSH 日志的粘贴,以便您可以了解运行所需的命令和信息:

/etc/openvpn$ sudo openvpn server.vpn.com.tcp443.ovpn
Tue Aug 15 18:54:42 2017 OpenVPN 2.3.4 arm-unknown-linux-gnueabihf [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jun 26 2017
Tue Aug 15 18:54:42 2017 library versions: OpenSSL 1.0.1t  3 May 2016, LZO 2.08
Enter Auth Username: ******************
Enter Auth Password: ********

如有任何帮助,我们将不胜感激。

答案1

您可以更改设置以使用公钥而不是密码。示例见OpenVPN 使用指南

如果您希望保留当前设置,您可以使用--auth-user-pass [up]选项在文件中提供用户名和密码,如中所述文档

--auth-用户密码 [向上]

使用用户名/密码与服务器进行身份验证。 up 是一个包含 2 行用户名/密码的文件(注意:如果文件是使用 --enable-password-save 配置选项构建的,或者在 Windows 上通过在 config-win32.conf 中定义 ENABLE_PASSWORD_SAVE 构建的,OpenVPN 只会从文件中读取密码。 H)。

如果省略 up,控制台将提示用户名/密码。

服务器配置必须指定 --auth-user-pass-verify 脚本来验证客户端提供的用户名/密码。

如果您在计算机上运行 systemd,则应该通过(以 root 身份/使用 sudo)启动 OpenVPN 实例。您需要将配置文件保存在.systemctl start [email protected]/etc/openvpn/NAME.conf

答案2

如果您在带有 SystemD 的 Debian 上运行,您需要wanted by在使用目标中使用 参数定义新服务,以便服务将在启动时启动。如果您使用 SystemV,请以/etc/rc.d/rc.local.

对于 systemD,首先复制一个系统服务以具有配置新服务的模板:

 $ cp /usr/lib/systemd/system/ssh.service /etc/system/systemd/myservice.service
 $ vim /etc/systemd/system/myservice.service

之后,您需要ExecStart使用 openvpn 脚本更新参数(您的 openvpn 脚本很简单,例如cat user-pass-file | openvpn config.ovp将用户密码放入文件中)。还添加WantedBy=graphical.target允许您在图形目标上启动服务的功能。之后插入以下命令来启动并启用服务:

$ systemctl enable myservice.service
$ systemctl start myservice.service

相关内容