我正在尝试找到一种方法,在 Remmina 中打开我的 RDP 会话之前启动 VPN 预命令脚本。我只能通过终端连接到我的 PPP vpn,但无法弄清楚如何通过桌面使其工作。这让我很头疼。我尝试了以下方法:
gnome-terminal -e 'bash -lc "pon vpn ;bash"'
" #!/bin/bash pppd call vpn "
ssh -t user@server "sudo pon vpn && exit"
我已将上述内容设置为可执行脚本,就像我说的那样,可以通过终端执行,甚至只需运行命令 pon vpn 或 pppd call vpn 即可执行。
有人完成过这个吗?为什么我在网上找不到任何相关信息?肯定还有其他人先连接到 VPN,然后连接到 RDP。我能够使用 Windows 中的 mRemoteNG 以及前后批处理脚本完成很多此类工作。我只想用 Linux 弄清楚(我使用的是 ubuntu)。
任何帮助将不胜感激。
答案1
我设法解决了这个问题。如果有人想做同样的事情,这里是如何让它发挥作用的。
首先安装 SSH pass。这允许你将密码传递给远程 SSH 会话
在终端中输入以下内容:
apt-get install sshpass
本指南将引导您通过终端设置 PPTP 连接。
设置 VPN 客户端连接后,您需要创建一个 Remmina 预命令脚本。此脚本将在通过 RDP 或 SSH 连接到远程服务器之前建立 VPN 连接。
创建脚本,/usr/local/bin
使所有用户都可以访问。使脚本可执行。
脚本名称示例:VPNConnect.sh
> #! /bin/bash
>
> echo 'Connecting to VPN...'
>
> sshpass -p "Password" ssh -o StrictHostKeyChecking=no user@server
> 'sudo killall pppd; sudo pppd call vpn; sleep 5 && exit'
此脚本本质上是通过 SSH 进入远程 shell 并启动 VPN 连接。我无法通过其他方式让它工作。脚本的最后一部分是告诉它休眠或等待 5 秒钟。这部分很重要,如果您不将其放在那里,Remmina 会在 VPN 建立之前过快地运行预命令脚本,您将无法通过 RDP 进入。
后命令脚本只是断开与 VPN 连接。
脚本名称示例:VPNDisconnect.sh
> #! /bin/bash
>
> echo 'Disconnecting from VPN...'
>
> sshpass -p "Password" ssh -o StrictHostKeyChecking=no user@server
> "sudo killall pppd && exit"
Remmina 允许您运行前置和后置命令脚本,这真是太棒了。只是在网上很难找到有关任何示例的文档。