首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置后台ssh隧道,可以自动退出终端/会话?

如何设置后台ssh隧道,可以自动退出终端/会话?
EN

Unix & Linux用户
提问于 2016-01-13 09:07:52
回答 1查看 976关注 0票数 0

我想要的是:

  1. 我可以在Linux机器上设置一个ssh隧道(实际上,我想在我的.bashrc中设置它)。
  2. 只有当ssh隧道进程处于活动状态时,我可以在任何时候使用此隧道作为机器上的任何用户运行进程。
  3. 当我退出终端/会话时,ssh隧道也应该退出。

我知道我可以在Linux中建立一个后台ssh隧道,如下所示:

ssh -Nf -L 8000:1.2.3.4:8000 username@2.3.4.5

当我退出这个终端/会话时,这个ssh隧道仍然会在后台运行。

如何使它也自动退出呢?

对于我的情况,我需要设置一个SSH隧道,几乎每次我登录我的服务器(为了绕过愚蠢的公司防火墙)。另一方面,我宁愿在注销后什么也不留下。

请注意:

这个http://www.g-loaded.eu/2006/11/24/auto-closing-ssh-tunnels/不符合我的要求。因为它要求我在ssh隧道进程之后启动我的进程,如果我使用ssh隧道的第一个任务完成了,我需要再次为第二个任务设置ssh隧道。另一方面,如果我设定一个很长的睡眠时间,那么ssh隧道将不会退出我的终端。

也许编辑.bash_logout是可能的?我希望有一个聪明的解决方案,以免涉及脚本。

EN

回答 1

Unix & Linux用户

发布于 2016-01-15 07:30:18

当特定用户登录到机器时,由bashrc文件启动的任何进程都会将用户的会话作为父进程。现在,除非用户的会话终止,否则进程不会自动终止。

我认为在bashrc文件中使用隧道命令是不明智的。相反,您可以在bashrc文件中创建隧道命令的别名。在特定的终端中调用别名,当您关闭该终端时,隧道将停止,因为现在该隧道的父节点将是终端。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/258881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档