【发布时间】:2012-01-29 04:12:09
【问题描述】:
我想编写一个 bash 脚本,它发送密码以向远程服务器进行身份验证。
例如,我想编写一个 bash 脚本,它将代码从 github 存储库拉取到服务器,但我必须指定密码或密码才能执行此操作。
我应该如何编写代码?我尝试了几件事,但没有任何效果。
【问题讨论】:
标签: linux bash scripting ubuntu
我想编写一个 bash 脚本,它发送密码以向远程服务器进行身份验证。
例如,我想编写一个 bash 脚本,它将代码从 github 存储库拉取到服务器,但我必须指定密码或密码才能执行此操作。
我应该如何编写代码?我尝试了几件事,但没有任何效果。
【问题讨论】:
标签: linux bash scripting ubuntu
我认为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
【讨论】:
autoexpect 是另一个好工具。我喜欢用它来创建原始脚本,然后编辑出我认为需要修复的部分。