问题:CTRL-C 似乎有时可以终止前台运行的进程,但并非总是如此。它也从来都不能清除当前的 BASH 命令(这是真正让我烦恼的部分)。
这个问题似乎只在我代理一个 SSH 连接而不是另一个 SSH 连接时才会出现。我使用的是 PuTTY 和 PLink。不幸的是,我在用于连接服务器的工具集中没有太多选择。我确实设法在 Linux SSH 配置中使用 ProxyCommand 对此进行了测试,结果是一样的。
以下是我得到的信息:
客户端是安装了 PuTTY 的 Windows 工作站。服务器 A 是我的“跳转主机”。基本上是我可以从客户端访问的堡垒。服务器 B 是我的目的地。服务器 A 可以访问它,但客户端不能。
Client上的Putty配置了ServerA作为本地代理,本地代理命令为:
plink -agent -l%用户%代理主机-nc%主机:%端口
对于正常使用来说,一切都很顺利,但是,如果我有一个部分输入的 bash 命令想要清除,CTRL-C 就无法像您预期的那样工作。事实上,它什么都不做。试图终止正在运行的命令也是如此。如果正在运行的进程设置为捕获并使用 SIGTERM 执行某些操作,就会发生这种情况,但如果没有,则似乎 SIGTERM 无法告诉 bash 终止该进程。
如果我直接通过 SSH 连接到另一台服务器,CTRL-C 可以正常工作。但是,当我通过 plink 代理通过 SSH 连接到服务器时,它不起作用。这似乎可能是 plink 或任何通过 ServerA 传递 -nc 隧道的东西的问题,但是,我找不到有关它的任何文档。
我不确定下一步该做什么才能调试。有其他人遇到过这个问题并解决了吗?
谢谢。