在 ssh 会话中停止命令而不退出 ssh

在 ssh 会话中停止命令而不退出 ssh

我有一个 ssh 会话并且正在运行一个脚本。我想终止脚本而不退出 ssh 会话。如果我在本地 PC 中运行脚本,则按Ctrl+ 键C ,脚本就会停止,而如果我在远程会话中按Ctrl+ 键C,则关闭 ssh 会话本身(在本例中还关闭脚本)。如何在不中断 ssh 连接的情况下停止远程 shell 中的脚本?

我使用 Windows 中的 Git Bash 在标准 Ubuntu 发行版中使用常用命令进行连接。ssh user@ip

在我的Windows客户端中,.ssh/config如下:

Host 192.168.XXX.YYY
  HostName 192.168.XXX.YYY
  User auser
  ForwardAgent yes

Host 192.168.XXX.ZZZ
  HostName 192.168.XXX.ZZZ
  User auser

它们与我正在使用的远程服务器无关。

答案1

安装 Git for Windows 2.35.1.2 后,我得到了同样的行为。

从降级到版本 2.34.1 后我可以避免它这里

答案2

我今天也遇到了这个问题——这似乎是CtrlC处理 Windows 版 Git 中捆绑的一个错误/usr/bin/ssh。在 Git bash 中,使用其预打包的ssh会话将在按下 时终止CtrlC,而不是将其发送到远程会话以中断那里正在运行的内容。然而,如果我跑了/c/Windows/System32/OpenSSH/sshCtrlC表现就会如预期。您可以ssh通过which ssh在 bash 会话中键入内容来查看正在执行的内容。

我通过重新安装适用于 Windows 的 Git v2.35.1.2 纠正了该问题 — 取消选择“仅显示新选项”复选框,以便您可以重新配置所有内容,并且在安装时,其中一个选项将是“使用外部 OpenSSH”。当然,您必须已经在 Windows 系统上安装了 OpenSSH 才能正常工作 - 您可以在 Windows 10/11 机器上通过转到“设置”→“应用程序”→“可选功能”→“添加可选功能”并选择“OpenSSH 客户端”来执行此操作。

更新:我也报告了这个问题,并已在最新快照中修复。因此,如果您希望保留捆绑版本,则ssh应该在下一个版本中修复它。

答案3

gitbash在这件事上确实有问题。尝试Windows PowerShell。醒来很好。

相关内容