[Linux] 用 Mac 連上 CentOS 7 的 vino VNC server

[Linux] 用 Mac 連上 CentOS 7 的 vino VNC server

之前寫過一篇 用 Mac 連上 Ubuntu 15.04 的 vino VNC server

結果最近新裝的 CentOS 7 也遇到了 vino VNC server 連不上的問題:

Screen Shot 2015-12-24 at 5.45.09 PM

 

因為 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

Restart VNC server via 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,就可以成功連上了: 

Screen Shot 2015-12-25 at 11.18.07 PM  

 

不過這個方法只是暫時性的,在步驟 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 的作者似乎也還沒考慮要修正這個相容性的問題…

 

(本頁面已被瀏覽過 1,132 次)

One thought on “[Linux] 用 Mac 連上 CentOS 7 的 vino VNC server

  1. 實測改/usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml 無效
    所以到頭來還是另裝tigervnc-server方便

發佈回覆給「Austin」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料