网络启动时自动启动 autossh 反向隧道

网络启动时自动启动 autossh 反向隧道

我使用反向 ssh 隧道从家用 PC 通过我拥有的 Internet 服务器连接到受限客户端(我也拥有)。

我有一个脚本,用于设置此 ssh 隧道的中间人腿的受限客户端。如果我手动执行脚本,效果很好。这里是:

#!/bin/sh
autossh -M 12399 -oPubkeyAuthentication=yes -oPasswordAuthentication=no -oLogLevel=error  -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no -i ~/.ssh/named_id_rsa -R 12345:localhost:22 [email protected] -p 22

我想让它在网络启动时自动运行在这台机器上。

为了实现这一点,我考虑将其另存为:/etc/network/if-up.d/reverse_ssh_tunnel.sh

我知道我必须删除“~/”并将私钥的完整路径指定为 home/username/.ssh/named_id_rsa。

我怀疑我必须使用 su -cmy_script_name用户名,但我无法让它工作。解决我的这部分问题是最重要的。它需要是全自动且无人值守的。

要从家里进行连接,我需要执行两个手动步骤:

A. ssh home -> 中间人
B. ssh 中间人 -> 受限客户端

A和B可以一步完成吗? (这很好,但不是必需的。)

总之:

  1. 理想情况下,我希望手动一步完成 A 和 B。
  2. 我需要受限制的客户端 -> 中间人autossh连接是全自动的。

答案1

好的,终于可以工作了。详细信息在这个问题中: 通过 SSH 反向隧道的远程桌面替代 TeamViewer

总之:

在桌面上(将获得支持):

su -l -c "autossh -M 5234 -N -f -R 1234:localhost:22 [email protected] &" username

在笔记本电脑上(提供支持):

me@laptop:~/.ssh$ 纳米配置

Host family_desktops
  ProxyCommand ssh middleman_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

然后我只需一步连接到“远程桌面”:

我@笔记本电脑:~$ ssh family_desktops -p 1234

相关内容