使用cygwin的ssh从windows登录linux-hosts后, 当退出远程shell时,我总是得到烦人的消息:
“被信号1杀死”
我用谷歌搜索,并意识到它无害,但仍然很烦人...... 有人建议您可以使用
删除消息$ ssh -q ...
但这对我尝试的任何机器都没有影响。
任何人都知道摆脱这个消息的工作解决方案吗?
答案 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杀死”)