Skip to content

Conchshell 2.5.6 (macOS + Linux)

Choose a tag to compare

@github-actions github-actions released this 27 Jul 17:08

Серверы без интерактивного шелла больше не «висят молча»

Подключение к SFTP-серверу (SFTPGo, internal-sftp с ForceCommand, chroot-джейл) проходило авторизацию, вкладка показывала «подключено» — и терминал оставался пустым. Ни приглашения, ни ошибки.

Причина: create_pty_session уходил в channel.request_pty(...).await без таймаута. Такие серверы канал принимают, а шелл не выдают и на запрос не отвечают — ожидание не заканчивалось никогда.

  • request_pty и request_shell ограничены таймаутом в 10 секунд.
  • Вместо пустого окна терминал печатает понятное объяснение (en/ru/zh-CN): у сервера нет интерактивного шелла, для файлов нужно подключение по протоколу SFTP.
  • Цикл переподключений в этом случае гасится — он структурно бесполезен.

Файловый браузер открывает настоящую домашнюю директорию

Раньше SSH-вкладка всегда стартовала в захардкоженном /home. У chroot-аккаунтов, на macOS (/Users/...), в контейнерах и на BSD такого пути нет — первый листинг падал, и панель выглядела сломанной.

  • Новая команда get_remote_home_dir спрашивает у сервера pwd по exec-каналу (MOTD в выводе не сбивает разбор).
  • Ответ кэшируется на подключение; браузер переходит туда, только если вкладку не переключили и пользователь сам никуда не ушёл.
  • Кнопка «Home» и возврат при исчезнувшем каталоге тоже используют реальный home.

Тесты

Rust 87 passed, фронтенд 488 passed / 7 skipped. i18n-паритет: 944 ключа во всех локалях.