问题标签 [autossh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
423 浏览

bash - Bash 脚本从命令行运行,但不能使用 Launchd

我在运行 Mavericks 的 2010 MBA 上运行 autossh。该脚本运行良好,并且可以从命令行按预期工作,但在由 launchd 运行时却不行。

我曾尝试在启动的 plist 中包含 PATH,但这没有帮助。

这是脚本:

我试过有无“ExitOnForwardFailure yes”

这是列表:

我尝试过使用和不使用 PATH 键。

我希望能够远程登录到这台机器。我也尝试过仅使用 ssh 并在命令行和启动时运行良好:

当然,由于 ssh 有效,我实际上并不需要 autossh,但我想知道为什么它对我不起作用。

0 投票
1 回答
136 浏览

bash - 为什么 autossh 会产生几十个自身和 ssh 的实例?

我在 Mac (Mavericks) 上通过由 launchd 控制的 bash shell 脚本运行 autossh。不幸的是,我设置的方式会导致 autossh 产生数十个自身和 ssh 的实例。最终,shell 似乎停止运行,远程连接变得不可能。如果我将 autossh 和 ssh 都杀掉,一切都会恢复正常。

这在主机上:

这在客户端:

我花了很长时间才开始运行它。到目前为止,我还不知道如何弄清楚这里发生了什么。

外壳脚本:

~/Library/LaunchAgents 中的launchd plist 文件:

我在这里做了什么来产生这么多 autossh 和 ssh 的实例?

0 投票
1 回答
143 浏览

google-cloud-platform - 如何将 autossh 与 google 计算一起使用(`gcloud compute ssh`)

我想在执行时使用 autossh 而不是 google cloud 运行的 ssh 命令 gcloud compute ssh --zone myzone --project myproject mymachine

替换它的命令行是什么?

0 投票
0 回答
93 浏览

ssh - Cygwin 自行消失并弄乱了我的下载文件夹权限(我认为)

我正在努力AutosshCygwin. 我松散地遵循了本指南:http: //tutorialspots.com/how-to-create-ssh-tunnel-on-windows-by-using-autossh-2984.html

我设法将我的 ssh 密钥和 ssh 设置到我的服务器中。我通过将我的 windows.ssh文件夹复制到 Cygwin 使用该cp命令的文件夹中来做到这一点,因此我跳过了指南的密钥生成部分,因为我有自己的。

我也安装了包AutoSSH, OpenSSH, OpenSSL, Zip, Unzipsnd vim

所以这是真正奇怪的部分:我复制了 ssh 密钥,ssh'ed 到我的服务器中,一切都很好。然后尝试使用autossh-M命令,但一切都消失了。就像/usr/bin文件夹消失了一样。然后我看到我从https://cygwin.com/得到的安装文件也消失了。我的桌面和开始菜单上的快捷方式也已自行删除。

在成功进入我的服务器一次后,这已经发生了两次。所以似乎在第二次尝试时,一切都会自行删除。更糟糕的是,当我尝试将安装文件下载到我的用户目录中的下载文件夹中时,chrome 显示“失败:权限不足”。有趣的是,它只对安装文件执行此操作。我可以从任何其他位置下载任何其他文件(似乎)。如果我告诉 chrome 使用不同的下载文件夹,我可以突然再次下载 cygwin。

我感到很困惑。任何人都可以帮忙吗?

0 投票
1 回答
683 浏览

ssh - 创建从 Jump 主机到数据库的 SSH 隧道,并在 Jump 主机端口上访问数据库

我正在尝试在运行服务器端口的数据库和另一台服务器之间创建一个 SSH 隧道,如下所示。

MySQL:3306 <=====> Server-A:3306

我想使用Server-A:3306作为数据库 URI 来连接到数据库。

我在 ServerA 上运行以下命令

ssh -f -N -i ~/keys/test.pem foo@foo.storesandbox.com -L5001:127.0.0.1:2001

我可以看到隧道已启动并正在运行。但是当我使用 Server-A 的公共 IP 并尝试连接到数据库时,它不起作用。

如果我在 Server-A 和我运行 MySQL 客户端的位置之间创建另一个隧道。然后它工作。但我不想那样做。

这个问题的原因可能是什么。我对脚本相当陌生

0 投票
1 回答
468 浏览

autossh - 10分钟后autossh隧道被杀死

我有一个autossh隧道设置,我正在通过它发送一些需要不间断连接数十分钟的东西。但是,我注意到每 10 分钟由管理的 SSH 隧道autossh被杀死并重新创建。

这不是由于不活动的连接,因为通过该通道正在发生活动的通信。

用于设置隧道的命令是:

0 投票
0 回答
434 浏览

docker - Autossh docker 将端点暴露给主机和容器

在公共服务器上,我有一个 Prometheus 导出器设置。这被防火墙故意阻止,因为信息不应该公开。

从一个单独的网络(我的具有动态 IP 的家庭网络),我希望抓取 Prometheus 导出器。这个想法是使用 autossh 来设置 SSH 隧道,以便能够以这种方式抓取端点。我更喜欢使用 docker 设置 autossh。

到目前为止,我已经设法使用以下 docker-compose 设置了一个autossh docker 容器

在容器内,这可以正常工作:

但是从主机(或其他容器),我得到错误:

如何正确公开此端点?

0 投票
0 回答
575 浏览

raspberry-pi - 使用 Traefik 从某个端点创建一个反向代理到本地网络端口

我正在尝试用 Traefik 做一个反向代理,比如 Nginx。要恢复,我想要从某个端点到本地网络端口的代理请求,这恰好是带有 Traefik 的 SSH 隧道。

实际上它适用于 Nginx,但想停止使用 Nginx 而不是 Traefik。

我已经测试了一些配置,但是 Home Assistant Add-on (Autossh) 没有连接到它。(它在同一台服务器上与 Nginx 一起工作就像一个魅力)。

在这里,我的 Traefik 配置:

码头工人-compose.yml

traefik.toml

服务.toml

0 投票
0 回答
140 浏览

ssh - autossh 可以用来监控“ssh -D”本地动态端口转发(SOCKS 代理)吗?如果是这样,怎么做?如果没有,替代方案?

当我在远程办公时,我需要访问一些内部网络服务器。我ssh -f -N -D 4000 someserver.mywork.com在家用电脑上使用来设置本地动态端口转发。然后,我将 Web 浏览器配置为使用 localhost 端口 4000 作为 SOCKS 主机,一切正常,即使使用 HTTPS。

问题是代理每隔几天就会停止工作。发生这种情况时,ssh 进程会打印如下消息:

在这种情况下,我必须终止 ssh 进程并重新启动它才能让它再次工作。根据我对此错误消息的研究,我可以增加打开文件数量的限制,但这似乎不是永久或理想的解决方案。

我希望autossh能够监视连接并自动重新启动它。那可能吗?

我尝试了以下命令:

但它没有用。代理停止工作,并且autossh没有重新启动它。自动重新启动我的 ssh 代理的任何建议或替代解决方案?

0 投票
0 回答
72 浏览

ssh - SSH 端口转发没有 SSH 进程死亡?

所以,我正在尝试设置一个具有端口转发功能的坚如磐石的反向 SSH shell,因为我有一台机器在一个通过 4G 连接到网络的位置,这意味着不人道的 NAT 层,所以“拨入”一个动态 DNS 主机名是不行的(尝试过,dyndns 服务报告的 IP 地址与我的 4G 调制解调器的管理界面报告的完全不同,我只能在上游设置 DMZ)。

到目前为止,我主要使用 autossh 和远程端口转发来设置它,连接到桥头 EC2 实例,现在我已经让它在一段时间后不会断开连接。我 TCPKeepalive在两台机器上使用,ServerAlive在“埋地”机器和ClientAlive桥头堡上。

这是“隐藏”机器(.ssh/config)上的配置:

...这是 autossh 调用:@reboot sleep 30 && autossh -M 0 -f -T -N revssh-forward-ssh来自我可信赖的 crontab。

在桥头堡,我将这些添加到常规 SSHD 配置中:

所以最后一切似乎都在运行。但是今天我注意到了一些奇怪的事情。我经常sudo sockstat -l在桥头堡上运行,看看我是否还打开了 8292 端口。我没看到。我想,该死的,autossh 一定已经退出了。因为我现在有另一种进入机器的方法,所以我加入了,令我惊讶的是,autossh 正在运行,并且它有一个子 ssh 进程。

我跳到桥头堡,ps afx表明 ssh 连接确实存在。但是端口转发死了。

所以我杀死了桥头上的 ssh 进程(不是 SSHD,我没有自杀的感觉),片刻之后,autossh 在隐藏的服务器上发挥了作用,sockstat 显示端口再次打开。

现在:AFAIK,这是不可能的。那么发生了什么,我该如何预防呢?

[编辑:当然,我检查了两台机器上的系统日志,但没有弹出任何内容。我看到 autossh 在掩埋服务器上建立了会话,并且看到会话在桥头上被接受并启动。没有其他的。]