Ubuntu

X 通過 SSH 連接到 Ubuntu 伺服器

  • March 2, 2011

我正在嘗試從 Ubuntu 伺服器遠端執行 X。我已經安裝gedit在遠端機器上,並嘗試過:

adam@laptop $ ssh -X adam@myserver
adam@myserver $ gedit
cannot open display: 
Run 'gedit --help' to see a full list of available command line options.

我已經用另一個程序試過了:

adam@myserver $ filezilla
Error: Unable to initialize gtk, is DISPLAY set properly?

這是 SSH 日誌,使用ssh -X -v

OpenSSH_5.3p1 Debian-3ubuntu5, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to [Server ip and name omitted, Adam] port 22.
debug1: Connection established.
debug1: identity file /home/adam/.ssh/identity type -1
debug1: identity file /home/adam/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/adam/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.7p1 Debian-8ubuntu1.2
debug1: match: OpenSSH_4.7p1 Debian-8ubuntu1.2 pat OpenSSH_4*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu5
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host [Server ip and name omitted, Adam] is known and matches the RSA host key.
debug1: Found key in /home/adam/.ssh/known_hosts:292
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/adam/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env LANG = en_US.utf8
debug1: Remote: No xauth program; cannot forward with spoofing.
Linux sftp-waze 2.6.24-10-xen #1 SMP Tue Sep 8 19:06:53 UTC 2009 i686

不幸的是,這些程序沒有詳細標誌,所以這就是我所擁有的所有資訊。

怎麼了?甚至可以在 ubuntu 伺服器上執行遠端 X 嗎?

它就在最後一行:

debug1: Remote: No xauth program; cannot forward with spoofing.

除了 gedit,您還需要安裝 xauth 包。如果 Ubuntu 伺服器沒有安裝 X Windows 系統(可能考慮到您必須手動安裝 Gedit),這顯然不存在。

確保您在伺服器上的 sshd_config 中允許它。

X11Forwarding yes

另外,請確保您的客戶端已配置。如果您使用的是 OSX,請確保 X11 正在執行,否則請檢查您的本地 ~/.Xauthority 是否為 chmod 600 並且客戶端上的 ssh_config 配置正確。

Host *
ForwardX11 yes
ForwardAgent no 

檢查您是否xorg-x11-xauth已在客戶端上安裝。您可以通過執行以下命令來驗證這一點:

$ ssh -X -l root <USERNAME>
# echo $DISPLAY
 localhost:10.0

引用自:https://serverfault.com/questions/242087