将无头服务器连接到 OpenVPN

将无头服务器连接到 OpenVPN

我正在运行无头式 Ubuntu 14.04.1 服务器。我想使用商业 VPN 服务来保护服务器的互联网连接,并且我的 VPN 提供商使用密码进行身份验证。我已在服务器上安装了它,并且它具有启动与我的 VPN 连接openvpn所需的.ca文件。.conf

但是,为了启动所述连接,我需要ssh输入并发出命令(sudo openvpn --config <conf-file>后跟我的 VPN 凭据),然后保持我的终端打开,只要我希望服务器保持与 VPN 的连接。

在无头设置下,这是不切实际的。我一直试图远程发出命令,以便它可以在我断开与服务器的连接时在后台运行,但我面临以下问题:

  • 我可以将服务器设置为在启动时自动连接,但这需要以纯文本形式存储我的 VPN 凭据,而我对此并不赞同。
  • 我无法ssh以 身份运行单个命令root(无需以 身份连接到服务器root,但我不确定设置密码是否root是个好主意。意见?)。也就是说,如果我发送,ssh <user>@<server> "sudo <command>"我会得到

    sudo:没有 tty 存在并且没有指定 askpass 程序

  • fN我尝试传递的任何标志组合ssh都会导致命令在被要求输入 VPN 凭据之前进入后台。
即使您认为这些想法不可行,也请随时提供其他启动连接的方法。但是,请注意,服务器未安装 GUI,因此任何依赖 GUI 的想法都是不合适的(例如,我很想使用它来启动nmcli我的 VPN,但没有 GUI 我就无法创建network-manager连接,或者至少我不知道如何创建)。

(PS:我尝试在网上寻找解决方案,但关于设置 OpenVPN 连接的结果太多了某人的服务器,如果其中隐藏着任何相关内容,我就无法找到它。)

答案1

您可以登录服务器并启动屏幕(输入screen。如果未安装,您可以使用apt-get install screen在 debian 或 ubuntu 或yum install screenfedora 中获取它),这将创建一个新的终端会话,即使您的 ssh 连接关闭,该会话仍可继续运行。在 screen 会话中启动您的 OpenVPN。您可以通过 分离会话(退出并让其继续运行)ctrl-a d。然后您可以注销,OpenVPN 将继续在 screen 中运行。如果您再次登录,您可以使用 重新连接到您的 screen 会话screen -x

在屏幕内,您还可以通过ctrl-a c(create) 启动新会话,并使用ctrl-a n(next) 或ctrl-a p(previous) 在会话之间切换。使用man screen了解更多信息或使用 Google ;) 您必须按下ctrl-a esc屏幕内才能向上滚动。如果您关闭屏幕内的最后一个 shell,则屏幕将终止。

相关内容