web-dev-qa-db-ja.com

linux:コマンドラインでユーザー名とパスワードを渡す

サーフィン中にプロキシを使用するためにIPVanishを使用しています。お気に入り:

Sudo openvpn --config /home/ipv/conf/ipvanish-CA-Toronto-tor-a09.ovpn

次に、ユーザー名を入力し、その後にパスワードを入力する必要があります。これらの2つのパラメーターを1つのコマンドとして渡して、1つのコマンドを使用するだけで、ユーザー名/パスワードが自動的に渡されるようにするにはどうすればよいですか?

15
JOhnlw009a

以前の答えは私にとってはうまくいきませんでした(まだユーザー名とパスワードを求められました)、うまくいったのはあなたの資格をファイル(pass.txt)に入れて、このようにしました

[email protected]
password

--auth-user-pass pass.txtでopenvpnを呼び出します。

ソース

7
Fluffy

フォロー中 @ Fluffy 回答(残念ながら、コメントするのに十分な評判がありません)

Pass.txtファイルの必要性をなくすことができる素敵なbashトリックがあります

の内在

openvpn ... --auth-user-pass pass.txt

ここでpass.txtは

opvn_user
ovpn_pass

使用できる

openvpn ... --auth-user-pass <(echo -e "opvn_user\novpn_pass")
7
MrBr

OpenVPNの--user引数を--askpass stdinとともに使用できます。次に、パスワードをOpenVPNの標準入力にパイプするだけです。

例:

echo $PASS | openvpn ... --user $USER --askpass stdin

ただし、パスワードは引数としてコマンドに渡され、他のアプリケーションからアクセスできる可能性があるため、実際には安全ではありません。

これを回避するには、ファイルを使用するだけです。

echo $PASS > password.txt
chmod 600 password.txt
openvpn ... --user $USER --askpass password.txt

注:...をOpenVPN引数に置き換えます(ここでは--config /home/ipv/conf/ipvanish-CA-Toronto-tor-a09.ovpn

1
pistache