如何使用NetworkManger for nmcli保存VPN密码?


14

关于将VPN密码放入的许多帖子/etc/NetworkManager/system-connections/<connection>。我无法在Ubuntu 12.04上使用它们。问题和答案中的字段似乎与我的字段略有不同。最接近的一种似乎是:如何使用NetworkManger保存VPN密码

我希望nmcli在控制台上而不是在桌面上的GUI小部件中要求输入密码,但这似乎是不可能的。

有两个问题:

  1. 这些/etc/NetworkManager/system-connections/<connection>文件及其字段是否在任何地方都有正式记录?NetworkManager文档链接似乎有很多404。
  2. 我的连接文件怎么了?

这是我的连接文件。我已经尝试了此文件中的许多设置变体,但这与我想出的效果差不多(当然是匿名的):

[connection]
# Not sure if this helps or breaks anything. Fails regardless.
permissions=user:peter:;
id=My VPNC
uuid=a2cd97d5-7df1-4391-91d8-7e72931ec2de
type=vpn
autoconnect=false
timestamp=1396942441

[vpn]
service-type=org.freedesktop.NetworkManager.vpnc
NAT Traversal Mode=natt
ipSec-secret-type=save
IPSec secret-flags=0
xauth-password-type=save
Vendor=cisco
Xauth username=user
IPSec gateway=1.2.3.4
XAuth password-flags=0
IPSec ID=Ipsec
Perfect Forward Secrecy=server
IKE DH Group=dh2

[vpn-secrets]
XAuth password=password
IPSec secret=grouppassword

[ipv4]
method=auto

许可证:

> ls -l /etc/NetworkManager/system-connections/My\ VPNC 
-rw------- 1 root root 527 Apr  8 10:11 /etc/NetworkManager/system-connections/My VPNC

运行它可以得到:

> sudo nmcli con up id  'My VPNC'
Active connection state: unknown
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/44
state: VPN connecting (need authentication) (2)
Error: Connection activation failed: no valid VPN secrets.

编辑:这是另一篇类似的文章(虽然关于Openconnect VPN):如何使NetworkManager通过nmcli自动连接到Openconnect VPN,而不提示用户和密码

Answers:


11

通过GUI设置VPN连接时,密码将保存在钥匙圈中。如果将密码保存在连接文件中,如下所示:

sudoedit /etc/NetworkManager/system-connections/MyConnectionExampleName

in this file:

    # 1 here means key-ring I  think, but with 0, the password below is  used
    [vpn]
    password-flags=0
    cert-pass-flags=0

    [vpn-secrets]
    password=my_secret_password
    cert-pass=my_secret_certificate_password

1
现在15.04不在这里为我工作。如果我nmcli con up id MyVPN以自己的用户身份运行,则密码对话框仍会出现在远程计算机的桌面上。跑步sudo nmcli con up id MyVPN先行(process:3320): libnm-glib-WARNING **: async_got_type: could not read properties for /org/freedesktop/NetworkManager/ActiveConnection/7: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist,然后是Error: Connection activation failed: Creating object for path '/org/freedesktop/NetworkManager/ActiveConnection/7' failed in libnm-glib.
彼得·V·莫奇

4

我遇到了同样的问题,/ var / log / messages正在注册一条消息,其中NetworkManager抱怨无效的属性。在删除标记和类型属性并仅保留[vpn-secrets]记录后,可以建立连接。

ipSec-secret-type=save
IPSec secret-flags=0
xauth-password-type=save
XAuth password-flags=0

我已安装的软件包:

NetworkManager-0.8.1-66.el6.x86_64

结果:

[connection]
id=My VPNC
uuid=a2cd97d5-7df1-4391-91d8-7e72931ec2de
type=vpn
autoconnect=false
timestamp=1396942441

[vpn]
service-type=org.freedesktop.NetworkManager.vpnc
NAT Traversal Mode=natt
Vendor=cisco
Xauth username=user
IPSec gateway=1.2.3.4
IPSec ID=Ipsec
Perfect Forward Secrecy=server
IKE DH Group=dh2

[vpn-secrets]
XAuth password=password
IPSec secret=grouppassword

[ipv4]
method=auto

没为我工作。作为root,我得到了:(process:2034): libnm-glib-WARNING **: async_got_type: could not read properties for /org/freedesktop/NetworkManager/ActiveConnection/4: Method "Get" with signature "ss" on interface "org.freedesktop.DBus.Properties" doesn't exist Error: Connection activation failed: Creating object for path '/org/freedesktop/NetworkManager/ActiveConnection/4' failed in libnm-glib.作为用户“ me”,它打开了远程桌面上的登录对话框。
Peter V.Mørch2015年

1
我可以确认这适用于cisco VPN上的Ubuntu 14.04。
戴尔·安德森

与Fritzbox 5490和Ubuntu 16.04一起使用。IPSec secretIPSec预共享密钥在哪里,是Xauth password您在Fritzbox上选择的密码。确保不会弄乱的拼写和大写/小写的关键字IPSec secretXauth password
MadMike

3

就解决16.04中的简单密码机密错误而言,您只需要两行:

[vpn-secrets]
password=my_secret_password

我只会在必要时触摸/添加其他行


1
我还需要设置password-flags=0
皮埃尔·弗朗索瓦·

2

我不会更改GUI生成的配置文件。下次您在GUI中单击时,您的手动输入已消失。另外,系统更新可能会阻止它。

您可以尝试以下操作:

  • 允许sudo nmcli不带密码运行:

    创建一个文件/etc/sudores.d/mynmcli(文件名无关紧要)

    Host_Alias HOST = YOURHOSTNAME
    Cmnd_Alias NMCLI    = /usr/bin/nmcli
    YOURHOSTNAME HOST=(root) NOPASSWD:NMCLI
    
  • 使用以下命令创建密码文件:

    vpn.secrets.Xauth password:PASSWORD
    vpn.secrets.IPSec secret:SHAREDSECRET
    

    现在,您可以在由玉米处理的脚本中运行以下行:

    sudo nmcli con up id YOURVPN passwd-file /path/to/your/file
    

    (要找到YOURVPN,请输入“ nmcli con”)

在Ubuntu 16.10上对我有效。



0

使用“网络连接”对话框编辑VPNC连接。

在“ VPN”选项卡上,密码输入的右侧输入中有一个图标。单击此图标,然后选择“仅存储该用户的密码”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.