我有一个bash脚本,它调用一个带有密码的expect脚本来启动ssh进程:
#!/usr/bin/bash
/usr/bin/expect $PWD/sshScript.exp $SSHPASSWORD
expect脚本调用ssh命令,等待提示输入密码并发送密码。
#!/usr/bin/expect
set password [lindex $argv 0];
spawn ssh -o "StrictHostKeyChecking no" username@host
expect "Enter your AD Password:" {
send "$password\r"
}
我可以让远程服务器正确显示ssh并显示[user@host ~]$
但是我想在expect脚本中添加一种自动运行bash脚本的方法,该脚本存储在与其他两个脚本相同的位置。
我试过
a)将文件scp到远程并在服务器中调用它,但我似乎无法期望发送任何文本传递密码
b)执行spawn ssh -o "StrictHostKeyChecking no" username@host < secondscript.sh
发送脚本以便运行,但在尝试运行脚本之前不会等待输入密码。
答案 0 :(得分:0)
您可以将bash和expect脚本组合在一起,并使用它将第3个bash脚本复制到远程服务器,执行它并返回输出。 这是一个简单的非测试示例:
<body>
<div class="wrapper">
<div class="header">
<div class="box">
intersect
</div>
<div class="box">
rest
</div>
</div>
<div class="wrapper-inner">
<div class="side">
navigation
</div>
<div class="main">
main content
</div>
</div>
</div>
</body>