Ubuntu: перенаправление команды ssh на существующий xterm

347
Vince

Эта команда выполняет удаленно на «имя машины» команду «glxgears» на новом терминале xterm:

xterm -hold -e sshpass -p <password> ssh -X -o StrictHostKeyChecking=no <user name>@<machine name> glxgears 

Что я хотел бы сделать, это запустить другие удаленные команды ssh на «имя машины», которые будут запускаться с того же xterm (тот, в котором уже запущен glxgears).

Это представляется возможным, так как работает следующее:

если я наберу

w 

Я вижу эту строку:

<username> pts/37 :0 12:41 3:30 0.00s 0.00s sshpass -p zzzzzzzzzz ssh -X -o StrictHostKeyChecking=no <user name>@<machine name> glxgears 

а также

echo "test" > /dev/pts/37 

выводит "test" в xterm, в котором запущен "glxgear"

Но:

xterm -hold -e sshpass -p <passwd> ssh -X -o StrictHostKeyChecking=no <username>@<machine name> echo "test" > /dev/pts/37 

выведите «test» в новом xterm.

Я полагаю, что команда 'echo "test"> / dev / pts / 37' выполняется на "имя машины", а не "echo" test "", которая выполняется на "имя машины" и перенаправляется в / pts / 37 на клиентском компьютере.,

Какой будет правильный синтаксис?

0

1 ответ на вопрос

3
user4556274

Вся команда, подлежащая удаленному выполнению, включая перенаправление, должна быть заключена в кавычки, чтобы предотвратить использование оператора перенаправления локальной оболочкой:

ssh -X -o StrictHostKeyChecking=no <username>@<machine name> "echo 'test' > /dev/pts/37" 
that works, thx. But I am confused. The remote machine will run "echo 'test' > /dev/pts/37" but /dev/pts/37 exits only on the machine that execute the command via ssh ... obviously I am wrong, since this is working, what am I missing ? Vince 7 лет назад 0

Похожие вопросы