【问题标题】:How do I send authentication details in a Bash script?如何在 Bash 脚本中发送身份验证详细信息?
【发布时间】:2012-01-29 04:12:09
【问题描述】:

我想编写一个 bash 脚本,它发送密码以向远程服务器进行身份验证。

例如,我想编写一个 bash 脚本,它将代码从 github 存储库拉取到服务器,但我必须指定密码或密码才能执行此操作。

我应该如何编写代码?我尝试了几件事,但没有任何效果。

【问题讨论】:

    标签: linux bash scripting ubuntu


    【解决方案1】:

    我认为discussed 很多,但您可以使用expect。下面是一个使用 ssh 连接主机的例子:

    #!/usr/bin/expect
    
    set password "YOURPASSWORD"
    set user "john"
    set host "192.168.1.100"
    
    spawn ssh $user@$host
    expect "Password:"
    send "$password\n";
    interact
    

    将“ssh user@host”替换为您要执行的命令,例如。 G。 “混帐拉”:

    spawn git pull
    

    下一行告诉你期待哪个提示(“密码:”)。确保此字符串设置为您手动执行 git pull 后出现的确切内容。区分大小写和空格很重要。

    编辑:在基于 Debian 的系统上安装 expect 很容易:

    apt -y install expect
    

    基于 RedHat:

    yum -y install expect
    

    【讨论】:

    • Expect 是一个非常好用的工具,尤其是当你有 commit / pull / etc 钩子提示额外输入时。
    • autoexpect 是另一个好工具。我喜欢用它来创建原始脚本,然后编辑出我认为需要修复的部分。
    猜你喜欢
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多