【问题标题】:How do I open an SSH tunnel using ansible?如何使用 ansible 打开 SSH 隧道?
【发布时间】:2021-10-30 14:05:30
【问题描述】:

大多数问题都询问如何通过 jumphost 使用 ansible。不是这个问题。

这个问题是:如何使用 Ansible 打开 ssh 隧道?

我正在尝试从远程主机上的 ansible 运行以下命令,以便远程主机通过 jumphost 打开到另一台服务器的 SSH 隧道。

tasks:
  - name: Open SSH Tunnel
    ansible.builtin.shell: 
      cmd: 'ssh -L *:3376:localhost:3306 -fN -o "ProxyJump MyJumpHost" -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /home/{{ inventory_hostname }}/.ssh/myPem.pem myUser@remoteHost'
      executable: /bin/bash
    register: tunnel_result

这是一个相当复杂的操作,所以我的猜测是我没有根据需要在各种服务器上配置所有内容。现在当我运行它时,尝试连接到“MyJumpHost”时操作超时。

是否有人能够就完成这项工作的必要部分提供任何建议?

【问题讨论】:

    标签: ubuntu ssh ansible proxy


    【解决方案1】:

    更糟糕的情况是,您始终可以使用带有引号过滤器的原始模块。

    - raw: "ssh -L *:3376:localhost:3306 -fN -o "ProxyJump MyJumpHost" -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /home/{{ inventory_hostname }}/.ssh/myPem.pem myUser@remoteHost"
      args:
        executable: /bin/bash
    

    这应该就像您在命令行上一样工作。但是,请记住将 SSH 密钥添加到主机以允许无密码登录。它也可能导致超时。在没有直接连接的主机之间为 RSYNC 执行此操作时遇到了困难。

    【讨论】:

    • 感谢分享。我继续前进,只是使用 bash 脚本手动设置隧道。但是当我回到它时,我会看看这是否有效。
    猜你喜欢
    • 2011-05-20
    • 2016-02-17
    • 1970-01-01
    • 2015-04-02
    • 2018-01-18
    • 2017-07-10
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    相关资源
    最近更新 更多