SSH exit status: отсутствие кода нельзя молча превращать в ноль

Запросить

Фотография конкретного исполнения не приложена.

Channel может закрыться без полученного клиентом числового результата. Если библиотека или обёртка считает такой случай успешным, автоматизация рискует принять неизвестный итог за выполненную задачу. Нужно сохранять отдельное состояние отсутствующего результата.

RFC 4254 описывает exit-status и exit-signal. Возврат статуса рекомендован, но само закрытие channel не несёт обязательного числового нуля. Завершение сигналом также передаёт другую информацию, которую нельзя безусловно подменить обычным successful exit.

Даже полученный нулевой код относится к смыслу конкретной программы. Для важного файла или изменения конфигурации могут требоваться дополнительные прикладные доказательства. Одно отсутствие stderr не является универсальным критерием успеха: программы по-разному используют diagnostic output.

В приёмке проверяют штатный результат, ненулевой код, сигнал и обрыв до статуса. Фиксируют представление каждого случая в API клиента. Отчёт должен различать успех, отказ и неизвестный итог. Закрытое соединение без текста ошибки не подтверждает завершение удалённой операции и не должно автоматически разрешать зависимые действия.

Основание — Numbered SSH RFCs with historical base mechanics and scoped later extensions; not complete current cryptographic allowlist, разделы RFC4254 6.10 Returning Exit Status; exit-signal. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — указанные номерные RFC SSH. Базовые документы 2006 года используются для семантики протокола, а не как полный актуальный список разрешённых алгоритмов. Реальные версии клиента/сервера, ключи и политика доступа не проверялись; команды, подключения и forwarding не выполнялись.

Все разборы

Россия Казахстан
office@alphasolutions.ru

Все запросы только на email