Ubuntu
X 通過 SSH 連接到 Ubuntu 伺服器
我正在嘗試從 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