Cygwin ssh дает "Убитый сигналом 1" при выходе

После использования cygwin ssh для входа из Windows в Linux-хосты, при выходе из удаленной оболочки я всегда получаю раздражающий msg:

"Убито сигналом 1"

Я googled, и понимаю его безвредный, но все еще раздражающий... Некоторые предложили вам избавиться от сообщения, используя

$ssh -q...

Но это не влияет ни на одну из машин, которые я пробовал.

Кто-нибудь знает рабочее решение, чтобы избавиться от этого сообщения?

Ответы

Ответ 1

Добавление следующей строки в файл ~/.ssh/config может уничтожить это сообщение.

Обновление: QUIET должен быть все CAPS & должен быть добавлен для каждого хоста в вашей конфигурации.

LogLevel QUIET

Если добавить в первую строку, сообщение будет подавлено глобально. Действует только для определенных хостов, если он помещен в Host.

Ответ 2

Это происходит, когда вы проксируете сеанс 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 in ProxyCommand приведет к выходу. Если вы добавите -q там, он будет подавлен:

ProxyCommand ssh -q proxy nc %h %p

Вы можете быть удивлены, что этот вывод не имеет ничего общего с Cygwin - это происходит и в Linux.

Ответ 3

Возможно, вам может понравиться PuTTY в качестве альтернативы. Я не думаю, что он дает эту ошибку. И он позволяет вам делать такие вещи, как сохранение информации о подключении и других тонкостей.

Хотя я и не пробовал это, вы также можете перенаправить sterr (который является потоком, на который я верю, что сообщение будет отправлено) в /dev/null (эффективно, битбакет или бездонная пустота, куда вещи идут умереть). Вы могли бы сделать что-то вроде:

ssh user @host 2 > /dev/null

Ответ 4

Если вы разрешаете совместное использование совместно с директивой ControlMaster, вы можете использовать одно соединение при проксировании сеансов через другой хост. Затем вы можете установить директиву ControlPersist на 1 секунду, что позволит избежать ошибки "убитого по сигналу 1", задерживая завершение общего подключения.

Добавьте в свой файл ~/.ssh/config

следующее:
ControlMaster auto
ControlPersist 1
ControlPath ~/.ssh/.%C

Ответ 5

Я добавляю новый ответ, потому что у меня есть новое решение при других обстоятельствах.

При использовании современной директивы ProxyJump нет места для вставки -q, как с ProxyCommand:

Host target
  ProxyJump proxy

Вместо того, чтобы вернуться к более ручному определению перехода с помощью ProxyCommand, решение с помощью ProxyJump состоит в том, чтобы добавить LogLevel QUIET к определению Host proxy:

Host target
  ProxyJump proxy
Host proxy
  LogLevel QUIET

который будет иметь тот же эффект, что и -q в ProxyCommand ssh -q proxy ....