2

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

  1. 我不想使用ssh-copy-id解决方案
  2. sshpass当我在没有 选项的情况下设置 ssh 隧道时正常工作,ProxyCommand但它不适用于选项集(写入失败。管道损坏)。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描述的脚本,但没有成功。我是新手,无法找出正确的引号转义,因为我找不到复杂的示例。这是我没有运气的尝试(以及其他一些引号变体):spawn

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

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

4

1 回答 1

3

使用期望:

spawn ssh -fN -o StrictHostKeyChecking=no \
    -o "ProxyCommand=nc -x localhost:8888 %h %p" \
    -R *:$rport:$localhostname:$nport \
    $username@$hostname
于 2015-02-22T15:51:53.883 回答