ubuntu: przekierowanie polecenia ssh do istniejącego xterm

0

Polecenie to wykonuje się zdalnie na „nazwie komputera” polecenie „glxgears” na nowym terminalu xterm:

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

Chciałbym uruchomić inne zdalne polecenia ssh na „nazwie komputera”, które działałyby z tego samego xterma (ten, który glxgears już działa).

Wydaje się to możliwe, ponieważ następujące prace:

jeśli napiszę

w

Widzę tę linię:

<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

i

echo "test" > /dev/pts/37

wypisuje „test” w xterm „glxgear” jest uruchomiony.

Ale:

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

wypisz „test” w nowym Xtermie.

Wydaje mi się, że polecenie „echo” test ”> / dev / pts / 37” jest uruchamiane na „nazwie komputera”, a nie „echo” testowe ”uruchamiane na„ nazwie komputera ”i przekierowywane do / pts / 37 na komputerze klienta .

Jaka byłaby poprawna składnia?

Vince
źródło

Odpowiedzi:

3

Całe polecenie, które należy wykonać zdalnie, łącznie z przekierowaniem, musiałoby zostać cytowane, aby zapobiec wykorzystaniu operatora przekierowania przez lokalną powłokę:

ssh -X -o StrictHostKeyChecking=no <username>@<machine name> "echo 'test' > /dev/pts/37"
użytkownik4556274
źródło
to działa, dzięki. Ale jestem zdezorientowany. Zdalna maszyna uruchomi test „echo”> / dev / pts / 37 ”, ale / dev / pts / 37 kończy działanie tylko na maszynie, która wykonuje polecenie przez ssh ... oczywiście się mylę, ponieważ to działa, co czy ja tęsknię
Vince