sshpass 不适用于 SSH ProxyCommand 选项

sshpass doesn't work with SSH ProxyCommand option

我正在尝试使用代理为 SSH 隧道自动进行 SSH 登录:

  1. 我不想使用 ssh-copy-id 解决方案
  2. sshpass 当我设置 ssh 隧道 没有 ProxyCommand 选项时正常工作,但它不起作用 with 选项集(写入失败。管道损坏)。 ssh 隧道本身在 该选项下运行良好,要求我输入密码。还尝试在 ~/.ssh/ssh_config 中设置选项但没有解决方案。这是单行本:

    sshpass -p $mypass ssh -fN -o StrictHostKeyChecking=no \
      -o ProxyCommand="nc -x localhost:8888 %h %p" -R \
      *:$rport:$localhostname:$nport $username@$hostname
    
  3. 我尝试了 Expect 描述的脚本 here 但没有成功。我是新手,无法找出正确的引号转义,因为我找不到复杂的 spawn 示例。这是我尝试过但没有成功的方法(以及其他一些引号变体):

    spawn ssh -fN -o StrictHostKeyChecking=no \
      "-o ProxyCommand=\"nc -x localhost:8888 %h %p\"" \
      -R *:$rport:$localhostname:$nport $username@$hostname
    

有人可以帮助我吗?谢谢。

要使用期望:

spawn ssh -fN -o StrictHostKeyChecking=no \
    -o "ProxyCommand=nc -x localhost:8888 %h %p" \
    -R *:$rport:$localhostname:$nport \
    $username@$hostname