SSH隧道在后台

dev*_*011 23 linux ssh ubuntu ssh-tunneling

我有一个进程期望 ssh 隧道连接正确执行,并且我一直在使用以下命令:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -N &
Run Code Online (Sandbox Code Playgroud)

我已经成功运行了 8 个月,最近我们的托管服务提供商不得不进行硬件更改以更新我们的机器,并使用适用于 Ubuntu 的新内核升级我们的机器。它从 4.8.3-x86_64-linode76 变成了 4.8.6-x86_64-linode78。

经过一系列故障排除后,我们不得不将命令更新为:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -fN
Run Code Online (Sandbox Code Playgroud)

在研究 ssh 文档时 -f 参数

在命令执行之前请求 ssh 进入后台。如果 ssh 要求输入密码或密码短语,但用户希望在后台使用,这将很有用。这意味着 -n。在远程站点启动 X11 程序的推荐方法是使用类似 ssh -f host xterm 的方法。

研究 "&" 的 bash 命令时

将进程置于后台(请参阅“> UNIX 操作系统的中级使用”中的多任务处理)。

这两个命令从根本上有什么区别吗?

Ale*_*exP 28

就在这里。从一开始就在后台ssh &运行ssh。在前台ssh -f启动ssh,允许它提示输入密码等,然后才ssh在执行请求的命令之前将自己置于后台。