Запуск удаленных программ на основе скриптов/терминалов через ssh приводит к ошибке (Ошибка открытия терминала: неизвестно.)

Запуск удаленных программ на основе скриптов/терминалов через ssh приводит к ошибке (Ошибка открытия терминала: неизвестно.)

Я напрямую запускаю удаленный скрипт/команду на сервере Ubuntu с помощью следующей команды:

ssh me@server 'nano my_file.txt'

Однако это приводит к ошибке:

Error opening terminal: unknown.

Другой пример: вызов удаленного скрипта, содержащего nanoкоманду, указанную выше, приводит к той же ошибке.

ssh me@server 'open_nano.sh'

Когда я это делаю ssh me@server 'echo something', я получаю somethingто, что и ожидал.

Что не так?

решение1

Вам придется использовать -tфлаг.

Примеры:

 ssh -t me@server 'nano my_file.txt'
 ssh -t me@server 'open_nano.sh'

Объяснение от man ssh:

 -t      Force pseudo-tty allocation.  This can be used to execute arbi‐
         trary screen-based programs on a remote machine, which can be
         very useful, e.g. when implementing menu services.  Multiple -t
         options force tty allocation, even if ssh has no local tty.

Связанный контент