如何将用户名和密码通过管道传输到另一个将执行的命令 (BASH)



在terraform中,我正在尝试在bash中自动执行一个命令(启动openvpn),该命令需要输入用户名,密码作为第二行的输入。

问题类似于此处描述的内容,如何在地形中运行 sudo 命令?...但就我而言,我需要同时传输用户名和密码,我不确定如何使用两者。

echo openvpnas && echo password | openvpn --config ./client.ovpn

此时,Open VPN要求输入用户名和密码,但是我不知道如何在脚本中输入用户名和密码。

[user@workstation openvpn_config]$ sudo openvpn --config ./client.ovpn
[sudo] password for user: 
Wed Jan 16 12:08:41 2019 OpenVPN 2.4.6 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Dec  5 2018
Wed Jan 16 12:08:41 2019 library versions: OpenSSL 1.0.2k-fips  26 Jan 2017, LZO 2.06
Enter Auth Username:openvpnas
Enter Auth Password:
如果您

使用保管库或其他东西来即时获取凭据,则可以local-exec创建用户名/密码文件。然后提供 --auth-user-pass up 参数以读取文件,然后local-exec删除该文件。

-

-身份验证用户传递 [向上]

使用用户名/密码向服务器进行身份验证。up 是一个包含 2 行用户名/密码的文件。如果缺少密码行,OpenVPN将提示输入密码行。 如果省略 up,控制台将提示用户名/密码。

服务器配置必须指定 --auth-user-pass-verify 脚本来验证客户端提供的用户名/密码。

来源: https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage

最新更新