【发布时间】:2018-07-05 03:30:43
【问题描述】:
我有一个 bash 脚本,它使用启动 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 ~]$,但我想在期望脚本中添加一种自动运行 bash 脚本的方法,该脚本存储在与其他两个脚本相同的位置。
我试过了
a) 将文件 scp 到远程并在服务器中调用它,但我似乎无法期望发送任何文本传递密码
b) 执行spawn ssh -o "StrictHostKeyChecking no" username@host < secondscript.sh发送脚本以运行,但在尝试运行脚本之前不会等待输入密码。
【问题讨论】:
-
实际上有几种方法可以做到这一点,幸好 Unix 和 Linux 堆栈交换站点得到了您的支持。请看unix.stackexchange.com/questions/87405/…