5

Я выполняю удаленную команду через ssh, и мне нужно проанализировать вывод этой команды. Удаленный stdout/stderr прекрасно пересылается с помощью ssh обратно в мой локальный ящик на stdout/stderr моей локальной команды ssh. Однако это не удается, когда ssh мультиплексирует свои собственные сообщения о состоянии / ошибках на моем локальном stdout/stderr.

Есть ли способ указать моей локальной команде ssh отправлять свои собственные сообщения в локальный файл? Или мне нужно заставить мои удаленные команды отправлять свои собственные выводы в пару удаленных файлов, а затем возвращать их обратно, чтобы безопасно их проанализировать?

1 ответ1

1

У клиента SSH есть два переключателя, чтобы уменьшить / устранить детализацию.

От человека ssh:

-q       Quiet mode.  Causes all warning and diagnostic messages to be
         suppressed.

-y       Send log information using the syslog(3) system module.  By
         default this information is sent to stderr.

-y вероятно, вам нужен, но он доступен не во всех версиях.

Текущая версия Ubuntu (OpenSSH_6.0p1 Debian-3ubuntu1, OpenSSL 1.0.1c 10 мая 2012 г.) поддерживает это, но другие не могут.

При желании вы можете сохранить журналы, относящиеся к ssh, в другом файле журнала.

Если вы используете rsyslog, например, создайте файл /etc/rsyslog.d/ssh.log и сохраните в нем следующую строку:

:msg,contains,"ssh:" /var/log/ssh.log

Теперь перезапустите rsyslog, выполнив следующую команду:

sudo service rsyslog restart

Чтобы получить доступ к журналам, относящимся к конкретному процессу ssh с помощью PID $PID , вы можете использовать grep:

grep "ssh\[$PID\]" /var/log/ssh.log

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .