X11'in ssh üzerinden çalışmasını sağlamak için 3 şeye ihtiyacınız olacak.
- Müşteriniz X11'i ilerletmek üzere ayarlanmış olmalıdır.
- Sunucunuz X11 yönlendirmesine izin verecek şekilde ayarlanmış olmalıdır.
- Sunucunuz X11 kimlik doğrulaması ayarlayabilmelidir.
Hem # 1 hem de # 2 varsa ve # 3 eksikse, o zaman boş bir DISPLAY ortam değişkeni ile sonuçlanırsınız.
Çorba-kuruyemiş, işte X11'in çalışmasını sağlayın.
Sunucunuzda / etc / ssh / sshd_config dosyasının şunları içerdiğinden emin olun:
X11Forwarding yes
X11DisplayOffset 10
SIGHUP sshd komutunu girmeniz gerekebilir, bu yüzden bu değişiklikleri toplar.
cat /var/run/sshd.pid | xargs kill -1
Sunucunuzda, xauth'un kurulu olduğundan emin olun.
belden@skretting:~$ which xauth
/usr/bin/xauth
Eğer xauth kurulmamışsa, "boş DISPLAY ortam değişkeni" sorunuyla karşılaşırsınız.
İstemcinizde sunucunuza bağlanın. Ssh'ye X11 yönlendirmesine izin verdiğinden emin olun. tercih ederim
belden@skretting:~$ ssh -X blyman@the-server
ama beğenebilirsin
belden@skretting:~$ ssh -o ForwardX11=yes blyman@the-server
veya bunu ~ / .ssh / config dosyasında ayarlayabilirsiniz.
Yönetmediğim yeni bir sunucuya girerken, bugün daha önce bu boş DISPLAY ortam değişkeniyle karşılaşıyordum. Eksik Xauth bölümünü izlemek biraz eğlenceliydi. İşte ne yaptım ve siz de ne yapabilirsiniz.
Yerel iş istasyonumda yönetici olduğum yerde / etc / ssh / sshd_config dosyasının X11 yönlendirmek üzere ayarlandığını doğruladım. -X'i localhost'a geri döndürdüğümde, DISPLAY'ini doğru ayarlıyorum.
DISPLAY'i üzülmeye zorlamak çok zor değildi. Sadece sshd ve ssh'nin doğru bir şekilde ayarlanması için neler yaptığını izlemeye ihtiyacım vardı. İşte yol boyunca yaptığım her şeyin tam çıktısı.
blyman@skretting:~$ mkdir ~/dummy-sshd
blyman@skretting:~$ cp -r /etc/ssh/* ~/dummy-sshd/
cp: cannot open `/etc/ssh/ssh_host_dsa_key' for reading: Permission denied
cp: cannot open `/etc/ssh/ssh_host_rsa_key' for reading: Permission denied
Ssh_host_ {dsa, rsa} _key dosyalarımı yerine kopyalamak için sudo kullanmak yerine, kendim için sahte dosyalar oluşturmak için ssh-keygen kullandım.
blyman@skretting:~$ ssh-keygen -t rsa -f ~/dummy-sshd/ssh_host_rsa_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/blyman/dummy-sshd/ssh_host_rsa_key.
Your public key has been saved in /home/blyman/dummy-sshd/ssh_host_rsa_key.pub.
Durulayın ve -t dsa ile tekrarlayın:
blyman@skretting:~$ ssh-keygen -t dsa -f ~/dummy-sshd/ssh_host_dsa_key
# I bet you can visually copy-paste the above output down here
Doğru yeni ssh_host anahtar dosyalarına işaret etmek için ~ / dummy-sshd / sshd_config dosyasını düzenleyin.
# before
blyman@skretting:~$ grep ssh_host /home/blyman/dummy-sshd/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
# after
blyman@skretting:~$ grep ssh_host /home/blyman/dummy-sshd/sshd_config
HostKey /home/blyman/dummy-sshd/ssh_host_rsa_key
HostKey /home/blyman/dummy-sshd/ssh_host_dsa_key
Ayrılmayan modda sshd'yi yeni bir bağlantı noktasına ateşleyin:
blyman@skretting:~$ sshd -p 50505 -f ~/dummy-sshd/sshd_config -d
sshd re-exec requires execution with an absolute path
Hata! Bu yolu daha iyi düzeltin:
blyman@skretting:~$ /usr/sbin/sshd -p 50505 -f ~/dummy-sshd/sshd_config -d
debug1: sshd version OpenSSH_5.5p1 Debian-4ubuntu6
debug1: read PEM private key done: type RSA
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: Checking blacklist file /usr/share/ssh/blacklist.DSA-1024
debug1: Checking blacklist file /etc/ssh/blacklist.DSA-1024
debug1: private host key: #1 type 2 DSA
debug1: setgroups() failed: Operation not permitted
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-p'
debug1: rexec_argv[2]='50505'
debug1: rexec_argv[3]='-f'
debug1: rexec_argv[4]='/home/blyman/dummy-sshd/sshd_config'
debug1: rexec_argv[5]='-d'
Set /proc/self/oom_adj from 0 to -17
debug1: Bind to port 50505 on 0.0.0.0.
Server listening on 0.0.0.0 port 50505.
debug1: Bind to port 50505 on ::.
Server listening on :: port 50505.
Yeni bir terminal açın ve 50505 numaralı bağlantı noktasındaki localhost'a girin:
blyman@skretting:~$ ssh -p 50505 localhost
The authenticity of host '[localhost]:50505 ([::1]:50505)' can't be established.
RSA key fingerprint is 81:36:a5:ff:a3:5a:45:a6:90:d3:cc:54:6b:52:d0:61.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:50505' (RSA) to the list of known hosts.
Linux skretting 2.6.35-32-generic #67-Ubuntu SMP Mon Mar 5 19:39:49 UTC 2012 x86_64 GNU/Linux
Ubuntu 10.10
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
1 package can be updated.
0 updates are security updates.
Last login: Thu Aug 16 15:41:58 2012 from 10.0.65.153
Environment:
LANG=en_US.UTF-8
USER=blyman
LOGNAME=blyman
HOME=/home/blyman
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
MAIL=/var/mail/blyman
SHELL=/bin/bash
SSH_CLIENT=::1 43599 50505
SSH_CONNECTION=::1 43599 ::1 50505
SSH_TTY=/dev/pts/16
TERM=xterm
DISPLAY=localhost:10.0
Running /usr/bin/xauth remove unix:10.0
/usr/bin/xauth add unix:10.0 MIT-MAGIC-COOKIE-1 79aa9275ced418dd445d9798b115d393
Buradaki son üç satıra bakın. Şüphesiz DISPLAY ayarını yaptım ve / usr / bin / xauth'dan bu iki güzel görünümlü çizgiyi gördüm.
Oradan / usr / bin / xauth'umu /usr/bin/xauth.old'a ayırmak, ssh ile bağlantıyı kesmek ve sshd'yi durdurmak, daha sonra sshd ile ssh'yi tekrar başlatmak için localhost'a döndüm.
/ Usr / bin / xauth gittiğinde, DISPLAY'in çevreme yansıdığını görmedim.
Burada olacak mükemmel bir şey yok. Çoğunlukla, yerel makinemde bunu yeniden üretmeyi denemek için mantıklı bir yaklaşım seçme konusunda şanslıydım.