How to enter password on console with NetworkManager's nmcli

I want to connect to a VPN with nmcli. Is there a way to allow me to provide a password to nmcli from the console?

There seem to be ways to store the password in /etc/NetworkManager/system-connections/<connection>, that I don't seem to be able to get working. But I'd prefer not storing passwords in files at all.

On the desktop I enter the password every time, but when I run sudo nmcli con up id MyVPN over SSH, it opens a GUI dialog on the remote desktop asking for my password, which seems like a strange design decision to me. If I had e.g. VNC to the remote desktop, I wouldn't use nmcli...


Solution 1:

Try using the --ask flag:

nmcli --ask con up id MyVPN

I've dropped sudo because it is probably unnecessary (and dangerous).

Solution 2:

this should work on ubuntu 16.04:

nmcli --ask con up id MyVPN

to get this working over ssh i also had to add rules in

  /etc/polkit-1/localauthority/90-mandatory.d

one called 90-ssh-network-control.pkla with content:

[Network Manager - Control network nmcli]
Identity=unix-user:yourusername
Action=org.freedesktop.NetworkManager.network-control
ResultAny=yes
ResultInactive=yes
ResultActive=yes

and another called 90-ssh-own-network.pkla with the same except for the Action field, replace with:

Action=org.freedesktop.NetworkManager.settings.modify.own

on 14.04LTS the --ask option is not available.