Я напрямую запускаю удаленный скрипт/команду на сервере 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.