使用 expect 时:SSHFS 传输端点未连接

daj*_*jon 5 bash sshfs expect

当我从 bash 运行我的 SSHFS 连接脚本时,一切正常。

但是,当我使用该expect实用程序运行相同的脚本时,当我尝试访问文件夹安装位置时出现以下错误:

Transport endpoint is not connected
Run Code Online (Sandbox Code Playgroud)

这是我的期望脚本:

#!/usr/bin/expect -f
spawn standard_sshfs_connection_string_or_script
expect "password: "
send "my_password\r"
Run Code Online (Sandbox Code Playgroud)

问:有什么想法吗?

笔记:

  1. 我首先已经打电话给: fusermount -u mount_location
  2. 是否有关于spawn创建新进程的事情,也许 sshfs 进程过早关闭?(有没有办法确保 sshfs 进程保持打开状态?)

Val*_*das 1

我不确定 的输出是否sshfs被捕获expect。这可能是您的问题 - 脚本终止而不发送密码,这会导致您描述的问题。

另一种可能的情况是,sshfs实际上正在向您发送输出user@domain password:,而预期可能不喜欢它。

然而,这确实不是解决问题的好方法。您的密码在该脚本中以纯文本形式显示!

您是否考虑过使用公钥身份验证?如果您不知道这个 git 示例是如何工作的,请看一下它。