入力を使用して起動時に自動的にスクリプトを実行しますか?

入力を使用して起動時に自動的にスクリプトを実行しますか?

私の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]

ユーザー名/パスワードを使用してサーバーに認証します。 upは、ユーザー名/パスワードの2行を含むファイルです(注:OpenVPNのみがそのファイルからパスワードを読みます。H)。

upを省略すると、コンソールにユーザー名/パスワードの入力を求められます。

サーバー構成では、クライアントが提供したユーザー名/パスワードを確認するために--auth-user-pass-verifyスクリプトを指定する必要があります。

システムでsystemdを実行している場合は、OpenVPNインスタンスを起動する必要があります(root / sudoを使用)。に設定ファイルを保存する必要があります。systemctl start [email protected]/etc/openvpn/NAME.conf

答え2

wanted bySystemDを含むDebianで実行している場合は、起動時にサービスが開始されるように、ターゲットのパラメータを使用して新しいサービスを定義する必要があります。 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

次に、openvpnスクリプトを使用してパラメータを更新する必要があります(openvpnスクリプトは、ユーザーのパスワードをファイルに入力するのと同じExecStartくらい簡単です)。cat user-pass-file | openvpn config.ovpまた、WantedBy=graphical.targetグラフィックターゲットでサービスを開始する機能を追加します。次に、次のコマンドを挿入してサービスを開始してアクティブにします。

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

関連情報