從甲電腦用 ssh 連線到乙電腦時, 如果多加一個 -X 選項,
像這樣: ssh -X me@乙電腦
之後就可以在乙電腦上執行 GUI 程式, 視窗會丟回甲電腦來。
這叫做
ssh X forwarding, 很好用。
不太確定是什麼原因, 最近我的筆電當成乙電腦 (ssh server) 時,
這個功能突然失效了。
這篇短文 拯救了我: 連線時改下 ssh -v -X me@乙電腦
,
這個 -v 會叫 ssh 多印一些除錯訊息。 再根據錯誤訊息
("X11 forwarding request failed on channel 0") 找到
文章, 說在乙電腦的 /etc/ssh/sshd_config 裡面加一句
X11UseLocalhost no
, 再重新啟動服務:
systemctl restart ssh
, 於是 ssh -X 就又可以用了!
這句話是什麼意思? 根據手冊 man sshd_config
及
這個問答, 看來是叫乙電腦的 sshd 服務放寬一點, 不要太嚴格。
也請參考
這個問答。
順便一提, 在乙電腦上 sudo 變身成 root 之後,
也有可能就無法再開啟 GUI 視窗。
[這就是 unix 的文化。 在預設的情況下,
即使是 root 也不能任意侵犯一般用戶的視窗啊!] 有搜尋到
1、
2、
3 等等文章;
不過其實我自己已經很久沒遇過到這個問題了。
回頭一查, 發現很久以前就已經在 root 的 .bashrc 裡面設定
export XAUTHORITY=/home/ckhung/.Xauthority
所以一直都很順暢。 註解裡寫著這招是從
archlinux 的文件 學來的。
真是太愛 archlinux 社群了! 連我們非 archlinux
用戶都經常受惠於他們超優質的文件。
這招好用!
回覆刪除但我在 cygwin 開 x server ,
如果遠端跑 firefox 或 emacs 會很慢,
不知道是網路慢還是 cygwin 慢。
網路測速是 10MB/s