sshpass不能使用SSH ProxyCommand选项

时间:2015-02-21 00:42:19

标签: ssh expect sshpass

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

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

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

    spawn ssh -fN -o StrictHostKeyChecking=no \
      "-o ProxyCommand=\"nc -x localhost:8888 %h %p\"" \
      -R *:$rport:$localhostname:$nport $username@$hostname
    
  5. 有人可以帮助我吗?谢谢。

1 个答案:

答案 0 :(得分:3)

使用expect:

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