You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

scp结合expect脚本无法触发首次连接的主机密钥确认提示问题求助

scp结合expect脚本无法触发首次连接的主机密钥确认提示问题求助

我写了一个用scp和expect实现文件复制到远程服务器的脚本,内容如下:

#!/usr/bin/expect -f

set port [lindex $argv 0]

set file_to_send [lindex $argv 1]

set login [lindex $argv 2]@[lindex $argv 3]

set username [lindex $argv 2]

set hostname [lindex $argv 3]

set password [lindex $argv 4]

set dest_folder [lindex $argv 5]

spawn scp -P $port $file_to_send $login:$dest_folder

expect {

# this will loop forever

# {*fingerprint*}

# sleep 0.8

{Are you sure you want to continue connecting (yes/no/\[fingerprint\])?}

{

exp_send "yes\r"

exp_continue

}

{password:} {send "$password\r"}

}

expect eof

我想要触发首次连接远程服务器时的初始提示,所以尝试过移除本地known_hosts文件里对应的密钥,甚至直接删掉整个known_hosts文件,但就是没法再弹出那个初始提示了。不过在另一台机器上这么操作是正常的,不管是移除对应密钥还是删掉整个文件,都能正常弹出首次连接的提示。

想请教一下这是怎么回事?我该怎么做才能触发我想要的那个提示?

我在三台机器上执行了grep -i StrictHostKeyChecking ~/.ssh/config /etc/ssh/ssh_config命令,输出结果如下:

grep: /home/ubuntu/.ssh/config: No such file or directory

/etc/ssh/ssh_config:#   StrictHostKeyChecking ask

备注:内容来源于stack exchange,提问作者CaTx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:44:11