<分区>
Possible Duplicate:
Using expect to pass a password to ssh
我想通过 ssh 连接到远程机器,而不是使用 ssh 命令连同机器地址和密码,我只想编写一个小函数来对机器执行 ssh 命令并在服务器之后输入通行证问它。我可以编写 ssh 部分,但是我怎样才能使脚本在主机要求时也进入 pass 呢?
<分区>
Possible Duplicate:
Using expect to pass a password to ssh
我想通过 ssh 连接到远程机器,而不是使用 ssh 命令连同机器地址和密码,我只想编写一个小函数来对机器执行 ssh 命令并在服务器之后输入通行证问它。我可以编写 ssh 部分,但是我怎样才能使脚本在主机要求时也进入 pass 呢?
最佳答案
您可以使用expect
脚本。您可以从命令行传递参数。我写的示例代码:
#!/usr/bin/expect
set timeout 100
set host [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set command [lindex $argv 3]
spawn ssh $username@$host $command
#puts $command
expect {
"(yes/no)?"
{
send "yes\n"
expect "*assword:" { send "$password\n"}
}
"*assword:"
{
send "$password\n"
}
}
关于linux - 如何编写在第一个命令后输入密码的 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801513/