首先:我已經閱讀了關於SO的類似問題的答案,但沒有一個能夠工作。X11轉發在Docker中運行的GUI應用程序
局勢:
- 應用使用GUI在下Arch Linux的碼頭工人容器(CentOS的7.1)運行。 (機器A)
- 機器A有一個監視器連接到它。
- 我想通過我的Arch Linux客戶端機器上的X11轉發來訪問此GUI。 (設備B)
什麼工作:
- GUI本地工作機器A(與安裝在所述容器多克爾/tmp/.X11-unix)。
- X11轉發任何在Docker外部運行的應用程序(X11轉發設置並正確運行以實現非泊塢窗使用)。
- 我甚至可以在遠程登錄時切換用戶,將
.Xauthority
文件複製到其他用戶,X11轉發也可以。
一些設置信息:
- 泊塢網絡是 '橋'。
- 容器可以到達主機(防火牆已打開)。
DISPLAY
變量在容器中設置(由於sshd正在偵聽的TCP端口6010,因此host-ip-addr:10.0)。- 到X前向端口(6010)的數據包正從容器到達主機(選中
tcpdump
)。
什麼不起作用:
-
泊塢窗應用的
- X11轉發
- 錯誤:
X11 connection rejected because of wrong authentication.
xterm: Xt error: Can't open display: host-ip-addr:10.0
事情我嘗試:
- 啓動客戶端SSH與機器B
ssh -Y
選項 - 將
"X11ForwardTrusted yes"
在ssh_config中對機器B xhost +
機器B(所以允許任何客戶端連接)- 將
Host *
在ssh_config中的機器B - 將
X11UseLocalhost no
放在機器A的sshd_config中(允許非本地主機客戶端) - 將第在容器E X的身份驗證令牌與
xauth add
從機器上登錄用戶A - 只複製過
.Xauthority
文件從工作用戶進入容器 - 使舒爾
.Xauthority
文件具有正確的權限和所有者
我怎麼才能禁用所有的X安全的東西,並得到這個工作?
甚至更好:我如何才能使它與安全性一起工作?
是否至少有一種方法可以啓用廣泛的調試來查看問題的確切位置?