23

使用 cygwin 的 ssh 从 windows 登录到 linux-hosts 后,在退出远程 shell 时,我总是收到烦人的 msg:

“被信号 1 杀死”

我用谷歌搜索,并意识到它无害,但仍然很烦人......有人建议你可以通过使用摆脱该消息

$ ssh -q ...

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

任何人都知道摆脱此味精的有效解决方案吗?

4

6 回答 6

45

当您通过另一台主机代理您的 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 targetsshinProxyCommand将导致输出。如果你在-q那里添加,它将被抑制:

ProxyCommand ssh -q proxy nc %h %p

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

于 2014-03-09T20:41:19.603 回答
8

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

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

LogLevel QUIET

在第一行添加将全局压缩消息。只有放在Host.

于 2016-10-09T05:27:05.650 回答
6

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

使用现代ProxyJump指令时,没有地方可以放置-q,如下所示ProxyCommand

Host target
  ProxyJump proxy

与其使用 切换回更手动的跳转定义ProxyCommand,不如使用 的解决方案ProxyJump添加LogLevel QUIETHost proxy定义中:

Host target
  ProxyJump proxy
Host proxy
  LogLevel QUIET

-q这将具有与in相同的ProxyCommand效果ssh -q proxy ...

于 2019-08-30T10:18:14.660 回答
2

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

exec 2> >(grep -v "Killed by signal 1.")
于 2019-12-20T13:50:32.043 回答
1

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

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

ControlMaster auto
ControlPersist 1
ControlPath ~/.ssh/.%C
于 2017-04-29T00:54:37.207 回答
0

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

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

ssh 用户@主机 2>/dev/null

于 2013-03-06T06:30:06.517 回答