我有 4 個不同的樹莓派設備,已連接到 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 的使用。如果可能的話,您應該考慮使用基於金鑰的身份驗證。