linux 衍生ID:衍生ID exp6未打开

r8xiu3jd  于 2023-01-01  发布在  Linux
关注(0)|答案(5)|浏览(199)

我知道这个问题已经在这里提到,但解决方案对我不起作用。
我有一个脚本(让我们将其命名为myscript.sh),它在远程环境中生成一个进程,并与之交互。

#!/usr/bin/expect
log_user 0
set timeout 10
spawn ssh -o PubkeyAuthentication=no [lindex $argv 0] -n [lindex $argv 1]
expect "password:" {send "mypassword\r"}
expect "Continue to run (y/n)" {send "n\r"}
interact

当我在本地环境中调用这个脚本时...

myscript.sh user@host "command1;./command2 parameter1 parameter2"

我在第7行得到上述错误(交互)
有什么想法吗?

kmbjn2e3

kmbjn2e31#

我怀疑expect无法找到(匹配)您发送的模式。

expect "password:" {send "mypassword\r"}
expect "Continue to run (y/n)" {send "n\r"}

再次检查“password:“和“Continue to run(y/n)”是否在正确的大写字母中。
如果仍然得到相同的错误,你可以尝试使用正则表达式.

vptzau2j

vptzau2j2#

试着做一个没有脚本的普通ssh,看看它能不能工作,有时远程主机的标识改变了,主机有了新的ip或者新的密钥,然后用ssh-keygen -f ~/.ssh/known_hosts -R old_host或者类似的方法删除旧的密钥。

70gysomp

70gysomp3#

我遇到了这个问题,这是由于使用了错误的端口。

mftmpeh8

mftmpeh84#

/usr/bin/expect <<EOF
  spawn ssh-copy-id -i $dest_user@$ip
  expect {
    "yes/no" { 
       send "yes\r";exp_continue 
    } "password" { 
       send "$passwd\r" 
    } eof { 
       exit
    }
  }
  expect eof

EOF

relj7zay

relj7zay5#

我也遇到了这个问题,但这是由于我为一个不相关的项目创建/编辑了以下文件:

~/.ssh/config

一旦我删除了它,我所有的脚本就开始工作了,我的期望文件也不再有这个问题了。

相关问题