Home > OS >  How do I automatically provide arguments in interactive terminal?
How do I automatically provide arguments in interactive terminal?

Time:02-01

I frequently have to connect to vpn for work. So rather than typing the whole cmd, i want to type something like vpn in terminal and it picks up the password from somewhere and the vpn gets connected.

The process I do now is..

sudo openvpn --config <configfile.ovpn>

I'll be prompted to type the password and when i do that it gets connected.

For the same I explored alias but I suppose alias is for much simpler task. Any solutions, how to pass password automatically when terminal ask for it?

CodePudding user response:

You can create an alias and use it .

In your .bashrc, you can create an alias

alias vpn=« Your command »

Then you will just type the command vpn.

Here a link that can help you

CodePudding user response:

When the password is asked interactively the best options is add the --askpass argument and send the password through a file.

openvpn --config <configfile.ovpn> --askpass <file with cred>

You can also add automatically the password using expect or similar, but the best option is using the own openvpn.

   --askpass [file]
          Get certificate password from console or file before we daemonize.

          For  the  extremely  security  conscious, it is possible to protect your private key with a password.  Of course this means that every time the OpenVPN daemon is started you must be there to
          type the password.  The --askpass option allows you to start OpenVPN from the command line.  It will query you for a password before it daemonizes.  To protect a private key with a  password
          you should omit the -nodes option when you use the openssl command line tool to manage certificates and private keys.

          If  file  is specified, read the password from the first line of file.  Keep in mind that storing your password in a file to a certain extent invalidates the extra security provided by using
          an encrypted key.

CodePudding user response:

You can put the password into a file and point your OpenVPN client configuration to it.

It is obviously a bad idea for security to store passwords in plain text on your hard drive!

If you still want to do it, put your user name and password in a plain text file on two lines, like so:

username
password

Add a line

auth-user-pass passwordfile

to your OpenVPN client configuration where passwordfile is the name of the file.

Note this only works in OpenVPN 2 and is no longer supported in version 3. See this blog post about it: https://openvpn.net/blog/openvpn-3-linux-and-auth-user-pass/

  •  Tags:  
  • Related