我有 4 个不同的 Raspberry 设备,它们连接到 4 个不同的显示器。我公司的前技术人员为所有设备安装并启用了 vnc 服务器,因此他可以远程桌面访问它们并只运行一个命令。
rdesktop -f -d -k en-us -d ourdomain -u tv1 10.xxx.xxx.xx1
他只是连接到每个服务器来运行上述命令,但当然使用不同的用户和终端服务器。我正在寻找一种更方便的方法,从我的 Fedora 盒子中结合 sshpass 和 ssh 的功能来完成上述所有操作。所以我首先尝试
sshpass -p 'somepass' ssh [email protected]
然后从我运行的会话中
rdesktop -f -d -k en-us -d ourdomain -u tv1 10.xxx.xxx.xx1
但我收到一条错误消息,提示“无法打开显示端口”。现在我知道此命令的结果或任何其他命令的结果都会显示在我的终端中。因此,我尝试了几种 ssh 命令的替代方法,但结果要么是在屏幕上看到 rdsektop,要么是上述错误。
sshpass -p 'somepass' ssh [email protected] -t rdesktop -f -d -k en-us -d ourdomain -u tv1 10.xxx.xxx.xx1
或者
sshpass -p 'somepass' ssh [email protected] -t -X rdesktop -f -d -k en-us -d ourdomain -u tv1 10.xxx.xxx.xx1
我在这里想要实现的是在远程机器上执行 rdesktop 命令并在电视屏幕上显示我之前创建的会话。简而言之。绕过 vnc 登录并从 ssh 执行所有操作。有办法吗?我知道我错了,但我看不到我错在哪里。
答案1
无法打开显示端口
该命令向我表明您可能没有自动进行 X11 转发。但您似乎正在尝试从远程系统运行 X11 应用程序。
如果您计划从远程系统运行 rdesktop,则需要 SSH 服务器支持 X11 转发,您需要xauth
在远程安装该软件包。您需要调整 ssh 客户端配置/etc/ssh/ssh_config
或~/.ssh/config
传递-X
到ssh
命令行以从客户端启用 X11 转发。
不过,从远程机器运行rdesktop
可能不是最佳选择。您基本上拥有 X11 会话的所有开销,以及 RDP 会话的所有开销。您最好使用 SSH 的端口转发功能,然后运行本地 rdesktop/freerdp 客户端。这样,您就可以避免远程 X11 会话通常出现的缓慢问题。
当然,最后要说的是,我强烈建议您重新考虑使用 sshpass。如果可能的话,您应该考虑使用基于密钥的身份验证。