有什么方法可以autossh在启动时启动,以便在用户登录之前启动并设置 ssh 隧道?我将 Ubuntu 引导到终端,我希望该autossh过程在启动时自动启动,以便我可以 ssh 进入。
我尝试将命令添加到/etc/rc.local,以及创建/etc/init/*.conf脚本。这些似乎都不起作用。
我正在使用autossh构建反向 ssh 隧道,但有时隧道会停止工作,我需要终止 autossh 并重新启动它。
/etc/cron.d/autossh
@reboot autossh -f -nNT -R 3269:intranet.example.com:3269 public.example.com &
Run Code Online (Sandbox Code Playgroud)
autossh 似乎保持在一个奇怪的状态,转发端口仍然打开,但你没有得到另一方的回应。通过重新启动 autossh 解决了这个问题。
我怎样才能防止这个问题发生?
如果我的本地主机出现故障,我如何重新建立隧道?
我有 2 台机器,Remotehost 和 localhost,在我的本地主机上,我正在运行 autossh 以在出现网络问题时保持隧道处于活动状态。
autossh -M 20000 -L 3300:192.168.2.101:3306 -R 3000:192.168.1.3:3000 disp@192.168.2.100 -p 80
Run Code Online (Sandbox Code Playgroud)
但是如果我需要重新启动本地主机怎么办?那么我如何自动重新连接隧道?
我在 NAT 后面有一台 PC,它与我的 Digitalocean VPC 建立反向 SSH 连接。我利用这个反向 SSH 连接从家里登录到我的办公室 PC(我被授权这样做)并复制文件和做其他重要的事情。
虽然不常见,但我注意到我的办公室 PC 重新启动(由于电源故障等)并中断了它与我的 VPC 建立的反向 SSH 连接。在这种情况下,我无法从我的家用 PC 连接到我的办公室 PC。
我运行以下脚本,使反向连接 + 动态代理匿名我在办公室 PC 上生成的流量(因为我不需要共享浏览信息)。
autossh -CD 8080 -i digitalOcean -R 8081:localhost:22 root@IPofDigitalOceanPC
Run Code Online (Sandbox Code Playgroud)
重新启动后,我无法在办公室 PC 上再次运行此脚本,因为我不在那里。为了解决这个问题,我安装了以下 crontab。
注意:rev.sh文件包含上述行。证书“digitalOcean”和 rev.sh 位于Ubuntu home. 因此,当我./rev.sh在我的 Ubuntu 终端中执行时,我获得了一个动态代理并访问了我的 DigitalOcean 服务器。这种方法100%有效。
但是,当我使用以下方法安装 crontab 时,我的 ubuntu PC 永远不会创建动态代理。我可以看到这一点,因为当我从谷歌浏览器检查这个代理时,它说代理拒绝连接。
这是我作为 root 的 cronjobs 尝试的 cronjobs。我也以普通用户的身份尝试过这些,但它们仍然不起作用。
@reboot bash /home/user/rev.sh
@reboot /home/user/rev.sh
@reboot cd /home/user && ./rev.sh
Run Code Online (Sandbox Code Playgroud)
然后我在当前时间前几分钟安装了一个 crontab 并等待它执行。
24 …Run Code Online (Sandbox Code Playgroud) 任何人都可以向我指出一个好的(逐步)资源的方向,用于在启动时使用 systemd 使用 autossh 设置反向 ssh 隧道吗?
我已尽力使用我在网上找到的资源来做到这一点,并成功地手动创建了反向 ssh 会话,但是还没有设法使用 systemd 使其自动化,以便我的“远程”系统可以重新启动而不会引起问题。
我正在尝试使用本教程建立持久的 autossh 会话,但是当我运行时,sudo systemctl enable autossh.service我不断遇到此错误:update-rc.d: error: cannot find a LSB script for autossh。
任何帮助破译此错误或在 Ubuntu 20.04 上创建持久 autossh 会话的帮助将不胜感激。
autossh.service文件:
[Unit]
Description=Establish persistent SSH tunnel
Requires=ssh.service
Wants=network-online.target
After=network-online.target
[Service]
User=user
Group=usergroup
Environment=AUTOSSH_POLL=60 AUTOSSH_FIRST_POLL=30 AUTOSSH_LOGFILE=/var/log/autossh.log AUTOSSH_LOGLEVEL=7 AUTOSSH_GATETIME=0
ExecStart=/usr/bin/autossh -i /root/.ssh/id_rsa -R 3010:localhost:22 -o 'StrictHostKeyChecking=no' -o 'UserKnownHostsFile=/dev/null' -o 'PasswordAuthentication=no' -o 'PubkeyAuthentication=yes' -o 'ServerAliveInterval 60' -o 'ServerAliveCountMax 3' -o 'BatchMode=yes' user@myddnsservice -p2016
RestartSec=6
Restart=always …Run Code Online (Sandbox Code Playgroud)