cygwin ssh在退出时给出“被信号1杀死”

时间:2012-09-28 12:00:46

标签: bash ssh cygwin signals

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

“被信号1杀死”

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

删除消息

$ ssh -q ...

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

任何人都知道摆脱这个消息的工作解决方案吗?

6 个答案:

答案 0 :(得分:38)

当您通过其他主机代理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时,ssh中的ProxyCommand将导致输出。如果你在那里添加-q,它将被禁止:

ProxyCommand ssh -q proxy nc %h %p

你可能会惊讶于这个输出与Cygwin无关 - 它也发生在Linux上。

答案 1 :(得分:6)

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

更新:QUIET必须全部是CAPS&必须为配置中的每个主机添加。

LogLevel QUIET

在第一行添加将全局压缩邮件。只有在特定主机置于Host下时才会生效。

答案 2 :(得分:0)

也许,您可能希望PuTTY作为替代方案。我不认为它给出了这个错误,它允许你做一些事情,比如保存连接信息以及其他细节。

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

ssh user @ host 2> / dev / null

答案 3 :(得分:0)

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

将以下内容添加到〜/ .ssh / config

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

答案 4 :(得分:0)

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

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

Host target
  ProxyJump proxy

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

Host target
  ProxyJump proxy
Host proxy
  LogLevel QUIET

-q的{​​{1}}中的ProxyCommand具有相同的作用。

答案 5 :(得分:0)

在脚本bash中,要消除此消息,请在顶部添加:

  

exec 2>>(grep -v“被信号1杀死”)