有童鞋在 AskWowUbuntu 上提出了這樣一個問題,要求能遠程控制主機運行上面的程序,而且不影響遠程主機用戶的使用,兩者互不影響。個人認為如果只是想運行其中某一軟體的話,通過 SSH 的 X11forwarding 功能來執行是最簡單方便的,所以把方法寫在了這裡。
1 在遠程 Ubuntu 主機上安裝 OpenSSH Server
sudo apt-get install openssh-server
確認 /etc/ssh/sshd_config 文件中的 X11Forwarding 為打開 (Ubuntu 上安裝后默認是打開的,所以一般不用做調整。)
X11Forwarding yes
如果遠程主機沒有裝 X 的話,只需要安裝 xauth 組件就可以了。
sudo apt-get install xauth
2 好了,現在就可以在本地主機上執行以下命令可以運行遠程主機上的 X 程序了,記得更改裡面的 username , hostip 及 app-name 為你的參數。
ssh -XC username@hostip app-name
X 表示啟用 X11 轉發,C 表示啟用 gzip 壓縮。或者也可以用 -Y 參數 (ssh -YC username@hostip app-name ) ,- Y 表示用 Trusted X11 forwardings (信任連接)方式 [參考]。
- 樣例:比如我要運行遠程主機上的 VirtualBox
ssh -XC riku@192.168.1.2 VirtualBox
當然,運行的時候,調用的文件都是遠程主機上的。
[ FAQ ]
1 能不能不要每次都輸入密碼?
利用 Key 認證方式。輸入命令 ssh-keygen 后一直回車產生 SSH key (公鑰/密鑰),然後 ssh-copy-id username@hostip 來上傳公鑰,下次就不用輸入密碼可直接登錄了。
2能不能不用每次都輸入命令?
可以在桌面上創建一個快捷方式,其中類型必須選擇為終端應用程序,命令部分就為 ssh -XC riku@192.168.1.2 VirtualBox 這樣的。以後就可以直接點擊桌面圖標來運行遠程主機上的程序了。
[火星人 ] 通過 SSH 運行遠程主機上的 X 程序已經有853次圍觀