[Linux] 用 Mac 連上 CentOS 7 的 vino VNC server
之前寫過一篇 用 Mac 連上 Ubuntu 15.04 的 vino VNC server,
結果最近新裝的 CentOS 7 也遇到了 vino VNC server 連不上的問題:
因為 CentOS 7 上面有些指令的用法和 Ubuntu 稍有不同,只好再記錄一下了…
參考資料:
stackoverflow: How do I set gsettings during startup?
Fix “No matching security types” VNC error on Ubuntu in 60 seconds!
gsettings not working over ssh
1. 使用 gsettings 關閉加密選項
目前看起來 Mac 無法連上 vino VNC server 的原因,
是因為 Mac 無法支援 vino-server 的加密選項, 因此可以用 gsettings 暫時關閉加密選項~
先用 gsettings 看看目前的 require-encryption 設定值,預設是 true:
test_user@localhost ~ $ gsettings get org.gnome.Vino require-encryption true
用 gsettings 將它設定成 false…
如果是在本機上執行的話,應該是沒有問題,
但如果是透過 SSH 連線來執行指令的話,就會遇到下列的錯誤訊息:
test_user@localhost ~ $ gsettings set org.gnome.Vino require-encryption false (process:27867): dconf-WARNING **: failed to commit changes to dconf: Error spawning command line 'dbus-launch --autolaunch=c06e2a4d9137412487e8156eff56fcfb --binary-syntax --close-stderr': Child process exited with code 1
所幸在網友的分享中找到了解答,如果是透過 SSH 連線的話,
在 gsettings 指令前面加上 dbus-launch 就可以成功執行了:
dbus-launch gsettings set org.gnome.Vino require-encryption false
設定完後,再次用 gsettings get 確認一下,現在的確是 false 了:
test_user@localhost ~ $ gsettings get org.gnome.Vino require-encryption false
2. 重新啟動 vino-server
剛剛的設定並不會影響現有的 vino-server process,
因此要執行下面的指令將 vino-server process 砍掉,再重新叫起來一個:
pkill vino-server export DISPLAY=:0.0 /usr/libexec/vino-server &
這時再重新用 VNC 連線 vino-server,就可以成功連上了:
不過這個方法只是暫時性的,在步驟 1 用 gsettings 設定的東西在重開機之後就會消失,
依照網友們的建議,應該是要直接去修改 /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml,
將 require-encryption 的 <default> 值從 true 改成 false:
<key name='require-encryption' type='b'> <summary>Require encryption</summary> <description> If true, remote users accessing the desktop are required to support encryption. It is highly recommended that you use a client which supports encryption unless the intervening network is trusted. </description> <default>false</default> </key>
上述這個修改 xml 的方法我還沒有驗證過,就先放著找機會試囉~
2015/12/28 附註:根據 Bug 987981 – Vino authentication issue 來看,
似乎 Vino server 預設要求 TLS security type,但一般的 VNC viewer 都不支援,
Vino server 的作者似乎也還沒考慮要修正這個相容性的問題…
One thought on “[Linux] 用 Mac 連上 CentOS 7 的 vino VNC server”
實測改/usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml 無效
所以到頭來還是另裝tigervnc-server方便