ubuntu:将 ssh 命令重定向到现有的 xterm

ubuntu:将 ssh 命令重定向到现有的 xterm

此命令在新的 xterm 终端上远程在“机器名称”上执行命令“glxgears”:

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

我想要做的是在“机器名称”上启动从同一个 xterm(glxgears 已在其中运行的 xterm)运行的其他远程 ssh 命令。

这似乎是可能的,因为以下工作原理:

如果我输入

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

在运行“glxgear”的 xterm 中打印“测试”。

但:

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

在新的 xterm 中打印“测试”。

我猜测命令“echo "test" > /dev/pts/37”是在“机器名称”上运行的,而不是“echo "test"”在“机器名称”上运行并重定向到客户端机器上的 /pts/37。

正确的语法是什么?

答案1

要远程执行的整个命令(包括重定向)都需要用引号引起来,以防止重定向运算符被本地 shell 使用:

ssh -X -o StrictHostKeyChecking=no <username>@<machine name> "echo 'test' > /dev/pts/37"

相关内容