Я могу выполнить передачу файлов через SSH * следующим образом:
ssh -T ${HOST} eval "cat > remote.txt" < local.txt
Однако, если я вместо этого выделю TTY, он зависнет, пока я не нажму Ctrl+C:
ssh -tt ${HOST} eval "cat > remote.txt" < local.txt
Вопрос: почему это? Есть ли обходной путь?
Лучшее, что я могу понять, это то, что локальный EOF не распространяется на удаленный процесс.
Сведения о платформе: OpenSSH_5.3p1, CentOS 6,7 x86_64
* В моем реальном случае я хочу использовать этот подход для передачи файлов непосредственно удаленному пользователю sudo; Я не могу использовать SCP, потому что я не могу использовать SSH как пользователя sudo. В файле sudoers в моей целевой среде установлено требование
requiretty
, отсюда и необходимость в TTY.