【问题标题】:Bash scrip to take password and use it when prompted for OpenVPN client connection?Bash脚本在提示OpenVPN客户端连接时获取密码并使用它?
【发布时间】:2019-07-01 18:20:41
【问题描述】:

我想要一个简单的 CLI 别名来将我的 5 个客户端(在我的机器上)连接到 5 个 OpenVPN 服务器,每个服务器都使用 相同 密码进行验证。

这可以使用 bash 脚本吗?密码提示在连接命令sudo openvpn --config client1.ovpn 之后几毫秒出现。

【问题讨论】:

  • 不是真正的重复,尽管链接帖子中的一些想法会很有用。所有这些链接都需要以纯文本形式存储密码,这是一个安全漏洞。我想被提示一次输入 5 个客户端连接通用的密码。
  • 我正在考虑将密码传递给脚本等同于存储在文件中,但我想它并不完全相同。 openvpn 是否允许凭据文件成为 fifo?你考虑过期望吗?
  • 期待是我遇到的解决方案。
  • 为了清楚起见,“5 个客户”在这种情况下是什么意思?您是在单台机器上运行 5 个 openvpn 命令,还是连接到其他 5 台机器?

标签: bash passwords sudo openvpn


【解决方案1】:

扩展我的评论,可以像这样使用fifo:

#!/bin/bash

getpw(){
    read -r -p"username: " u
    read -r -p"password: " p
}

# ...

for client in {1..5}; do
    openvpn \
        --config "client${client}.ovpn" \
        --auth-user-pass <( printf "%s\n%s\n" "$u" "$p" )
done

# ...

【讨论】:

    【解决方案2】:

    这对我有用。

    #!/usr/bin/expect -f
    
    # automatic openvpn login
    spawn sudo openvpn File.ovpn
    
    # script will enter username/password automatic. 
    expect "Enter Auth Username:" 
    send "USERNAME\n" 
    
    expect "Enter Auth Password:" 
    send "PASSWORD\n"
    
    interact
    

    结束脚本

    我只是一个新手,你需要自己写:)

    【讨论】:

    猜你喜欢
    • 2012-10-10
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多