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

关于将VPN密码放入/etc/NetworkManager/system-connections/post很多。 我不能让任何人在Ubuntu 12.04上工作。 问题和答案中的字段似乎与我的略有不同。 最接近的似乎是: 如何使用NetworkManger保存VPN密码 。

我更喜欢让nmcli在控制台上而不是在桌面上的GUI小部件中询问密码 ,但这似乎是不可能的。

所以有两个问题:

  1. /etc/NetworkManager/system-connections/文件及其字段是否在任何地方正式记录? 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 

PERMISSONS:

 > 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. 

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

通过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 

我遇到了同样的问题,/ 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 

在解决16.04中的简单密码密码错误方面,您只需要两行:

 [vpn-secrets] password=my_secret_password 

如有必要,我只会触摸/添加其他线路

做狼说的话 。 保存文件。

然后输入

 sudo service network-manager restart 

并按Enter键

现在您的更改生效了。

我不会更改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 

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

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

    (要查找YOURVPN类型“ nmcli con ”)

在Ubuntu 16.10上为我工作。

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

在VPN选项卡上,密码输入在右侧输入内部有一个图标。 单击此图标并选择“仅为此用户存储密码”。