【问题标题】:Script to automate two consecutive ssh connections自动化两个连续 ssh 连接的脚本
【发布时间】:2012-08-29 18:50:44
【问题描述】:

我知道可以编写一个 shell 脚本,将您的硬编码密码传递给 ssh 连接身份验证(使用期望)。但是我需要的稍微复杂一些。

在我的大学里,我指定了一台台式电脑。我可以通过首先与某个服务器建立 ssh 连接,然后从该服务器与我指定的台式计算机建立另一个 ssh 连接来远程连接到这台计算机。这就像:


localuser@localcomputer:~$ ssh -X username@serveraddress

用户名@服务器地址密码:

server$ ssh -X username@remotecomputeraddress

用户名@远程计算机地址密码:

用户名@远程计算机:~>


有没有办法编写一个可以自动执行上述操作的脚本(即执行两个连续的 ssh 连接)?

提前致谢!

ps:本地和远程计算机都在 Linux 上运行。

【问题讨论】:

    标签: linux ssh


    【解决方案1】:

    您可以通过以下方式以交互方式执行此操作:

    ssh -t -X username@serveraddress ssh -t -X username@remotecomputeraddress
    

    注意这不是管道 - 第二个ssh 是在第一个ssh 创建的连接上运行的命令。 -t 选项是分配交互所需的伪 tty 所必需的(密码收集以及最终目标 - 远程系统上的交互会话)。用expect 结束它作为读者的练习.... ;-)

    设置正确的私钥/公钥对和ssh-agent 的奖励积分这样就不需要密码(当然,除非出于安全原因不允许这样做)。

    【讨论】:

    • 亲爱的twalberg,我已经试过你的方法了。我已经越过了第一个 ssh 连接。在此之后,我的脚本停止并且仅在我退出第一个 ssh 连接时继续。我该怎么做才能使其正常工作。我在下面添加了我的脚本: --- #!/usr/bin/expect spawn ssh -t -X remoteuser@serveraddress ssh -t -X remoteuser@remotecomputer expect "remoteuser@serveraddress's password: \r" send "my_password" interact期望“remoteuser@remotecomputer 的密码:\r”发送“my_password”交互 ---
    • 感谢 twalberg,通过结合使用 -t 选项和无密码密钥,我成功实现了目标。
    • 在这里我想扩展这个问题。有没有机会使用 rsync 来传输文件;例如,可以通过 server2 说 server1 到 server3?谢谢。
    【解决方案2】:

    是的,你可以这样做。

    假设您在 expect_script 中有您的 except 脚本:

    cat expect_script | ssh -X username@serveraddress sh -s
    

    在这个expect_script中你必须运行ssh -X username@remotecomputeraddress

    当然,您可以在两台主机上安装公钥并使用无密码身份验证。

    【讨论】:

      【解决方案3】:

      不久前我写了一些东西来用爆炸路径来做到这一点: http://stromberg.dnsalias.org/~strombrg/deep-ssh.html

      因此,您需要设置无密码、无密码的身份验证(或使用代理作为密码),例如: http://stromberg.dnsalias.org/~strombrg/ssh-keys.html

      然后:

      deep-ssh username@serveraddress!username@remotecomputeraddress command
      

      如果 bash 抱怨 !,您可以用反斜杠转义它。

      老前辈会认识到这是指定 UUCP 路径的方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-27
        • 2011-10-10
        • 2016-11-28
        • 1970-01-01
        • 2020-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多