TL;DR:如何使用 IPSec 连接到 VPN,而不在配置文件中写入密码和机密,而是从外部提供(在我的情况下是调用我的密码管理器pass
)?
netctl
我已经在工作中使用、pass
、 和的组合openconnect
来连接到非 IPSec vpn。我的 netctl 配置文件基本上是这样的
razr@notebook [~]
-> % cat /etc/netctl/my-vpn
Description='myVPN'
Interface=vpn
Connection=tuntap
Mode=tun
BindsToInterfaces=(tun0)
IP=no
PIDFILE=/run/openconnect_${Interface}.pid
SERVER=my.server.com
LOCAL_USERNAME=razr
PASS_PATH=com/myserver/razr
REMOTE_USERNAME=razr
ExecUpPost="echo '`su ${LOCAL_USERNAME} -c "DISPLAY=:0 pass ${PASS_PATH}" | head -n 1`' | /usr/bin/openconnect --background --pid-file=${PIDFILE} --interface ${Interface} --user='${REMOTE_USERNAME}' --passwd-on-stdin ${SERVER} ; chmod 644 ${PIDFILE}"
ExecDownPre="kill -INT $(cat ${PIDFILE}) ; resolvconf -d ${Interface} ; ip link delete ${Interface}"
razr@notebook [~]
-> %
因此,当我启动配置文件时my-vpn
,会调用 pass 来获取密码com/myserver/razr
,因此我被要求解锁我的 pgp 密钥(这就是为什么有DISPLAY:=0
; 还不理想,我知道:))。
现在我想连接到 IPSec VPN。看起来,这openconnect
与 IPSec 不兼容(如果我错了,请纠正我)。所以我尝试使用vpnc
它。我已经可以在第一次测试中使用完全填充的配置文件进行连接。但我不想将我的密码(也许也不是 IPSec 秘密)保存在配置文件中,而是保存在pass
.
那么,是否可以在配置中从外部提供密码和秘密vpnc
?或者是否有其他工具可以做到这一点,我可以将其集成到netctl
配置文件中?