【问题标题】:cygwin ssh gives "Killed by signal 1" on exitcygwin ssh 在退出时给出“被信号 1 杀死”
【发布时间】:2023-03-03 08:21:23
【问题描述】:

使用 cygwin 的 ssh 从 windows 登录到 linux-hosts 后, 退出远程外壳时,我总是收到烦人的消息:

“被信号 1 杀死”

我用谷歌搜索,发现它无害,但仍然很烦人...... 有人建议您可以使用

来摆脱该消息

$ ssh -q ...

但这对我尝试过的任何机器都没有影响。

任何人都知道摆脱此消息的有效解决方案?

【问题讨论】:

  • 您找到解决方案了吗?
  • 不。仍然收到那个消息。
  • @Yotam 看看我的回答

标签: bash ssh cygwin signals


【解决方案1】:

在脚本 bash 中,要删除此消息,请在顶部添加以下内容:

exec 2> >(grep -v "Killed by signal 1.")

【讨论】:

    【解决方案2】:

    我正在添加一个新答案,因为我在不同的情况下有一个新的解决方案。

    使用现代的ProxyJump 指令时,没有地方可以放置-q,与ProxyCommand 一样:

    Host target
      ProxyJump proxy
    

    ProxyCommand 切换回更手动的跳转定义不同,ProxyJump 的解决方案是将LogLevel QUIET 添加到Host proxy 定义中:

    Host target
      ProxyJump proxy
    Host proxy
      LogLevel QUIET
    

    这将与ProxyCommandssh -q proxy ... 中的-q 具有相同的效果。

    【讨论】:

      【解决方案3】:

      在您的 ~/.ssh/config 文件中添加以下行可以压缩该消息。

      更新:QUIET 必须全部大写并且必须为配置中的每个主机添加。

      LogLevel QUIET
      

      在第一行添加将全局压缩消息。只有放在Host下的特定主机才会生效。

      【讨论】:

      【解决方案4】:

      如果您使用 ControlMaster 指令启用连接共享,您可以在通过另一台主机代理会话时共享单个连接。然后,您可以将 ControlPersist 指令设置为 1 秒,这将通过延迟共享连接的终止来避免“被信号 1 杀死”错误。

      将以下内容添加到您的 ~/.ssh/config

      ControlMaster auto
      ControlPersist 1
      ControlPath ~/.ssh/.%C
      

      【讨论】:

        【解决方案5】:

        当您通过另一台主机代理您的 ssh 会话时会发生这种情况。示例.ssh/config 文件:

        # machine with open SSH port
        Host proxy
        HostName foo.com
        
        # machine accessible only from the above machine
        Host target
        HostName 192.168.0.12
        ProxyCommand ssh proxy nc %h %p
        

        当您从ssh target 退出时,ProxyCommand 中的ssh 将导致输出。如果您在此处添加-q,它将被禁止:

        ProxyCommand ssh -q proxy nc %h %p
        

        您可能会惊讶于此输出与 Cygwin 无关——它也发生在 Linux 上。

        【讨论】:

        • 我的一个仍在生产中的旧 SunOS 机器之一,OpenSSH_4.3p2, OpenSSL 0.9.8b 04 May 2006 不支持此选项。还有-W跟原来的问题没有关系。
        【解决方案6】:

        也许,您可能更喜欢PuTTY。我认为它不会给出该错误,并且它允许您执行保存连接信息以及其他细节等操作。

        虽然我还没有尝试过,但您也可以将 sterr(我相信消息将被发送到的流)重定向到 /dev/null(实际上是事情去向的 bitbucket 或无底洞)死)。你可以做类似的事情:

        ssh user@host 2>/dev/null

        【讨论】:

          猜你喜欢
          • 2020-11-16
          • 1970-01-01
          • 2016-08-30
          • 1970-01-01
          • 1970-01-01
          • 2013-04-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多