  X Apps   ̴ Ͽ(Remote X Apps mini-HOWTO)
  Vincent Zweije, zweije@xs4all.nl
  14 July 1998
  ̵ bookbug@net.kitel.co.kr
  1998726

   mini-HOWTO   α׷  Ű 
  Ѵ.  Ȯ ϸ,   α׷ 
  ǻ͹ۿ ٸ ǻ display Ű   ̴. Ȥ
  Ųٷ:  ɾִ ǻ͹ۿ ٸ ǻͿ  
  α׷ ǵ ϴ   ̴.  mini-HOWTO 
   ߸ ʴ ̴.
  ______________________________________________________________________

  

  1. Ұ(Introduction)
  2.  ڷ(Related Reading)
  3. Ȳ(The Scene)
  4. ణ (A Little Theory)
  5. Ŭ̾Ʈ Ϸֱ(Telling the Client)
  6.  Ϸֱ(Telling the Server)
     6.1 Xhost
     6.2 Xauth
        6.2.1 Ű ϱ(Making the Cookie)
        6.2.2 Ű ϱ(Transporting the Cookie)
        6.2.3 Ű ϱ(Using the Cookie)
     6.3 Ssh

  7.  ذ(Troubleshooting)

  ______________________________________________________________________

  1.  Ұ(Introduction)

   mini-HOWTO      α׷ 
  Ű°  ȳ̴.      .

  1.      α׷  Ű
       б׷쿡  Դ.

  2.   쿡 ϱ ؼ ``xhost +hostname''Ǵ ``xhost
     +'' ``̿''϶  ︮ 亯  Ҵ.  ̰
     ͹Ͼ Ҹ 亯̾,   ִ 亯  
     ־.

  3.   α׷       ׵鿡 
     ϴ   ִٰ  ߴ.    
      ˰ ִٸ  ˷ֱ ٶ.

    н迭 ý۵ ο ΰ Դ.  
  Ǵ  ü ٸ  ̶,  ϴ°
   ãƳ  𸥴. ׷,  Ư ýۿ ϱ
  ؼ   ڽ ٸ  ٲپ  ̴.

    ֽ  κ 
  http://www.xs4all.nl/~zweije/xauth.html  ׻ տ   ִ.
   http://sunsite.unc.edu/LDP/HOWTO/mini/Remote-X-Apps Linux
  Remote X Apps mini-HOWTO տ   ִ. Linux (mini-)HOWTO
  sunsite.unc.eduκ http ftp ̿ؼ տ   ִ.

     0.5.1̴.  µ  ,   游
  ־ ̴.  , , ߰ ,  , (Ÿ)
   ޾Ƶδ.     ϰ б    ֱ⸦
  ٶ, ׷,  ǹ ִ  HOWTO   ֱ⸦
  ٶ.  /dev/null Ѹ ٶ.

  ʴ 1998 7 14Ͽ Vincent Zweije  ߴ.

  2.   ڷ(Related Reading)

     ``What to do when Tk says that your display is
  insecure'', http://ce-toolkit.crd.ge.com/tkxauth/̴. Kevin Kenny
  ؼ .     (Xauth)  κа
   ذå Ѵ. ׷, Kevin ſ Xauth Ҷ
  xdm ̿ϴ 쿡    д.

  O'Reilly and Associatesκ ǵ X Window System Vol. 8 ``X Window
  System Administrator's Guide''   óν  Ǹ
  Դ. ϰԵ,  װ     ¿ ִ.

  ٸ ,    
  http://ciac.llnl.gov/ciac/documents/ciac2316.html   ִ,
  ``Securing X Windows''    ô Ѵ.

  comp.windows.x, comp.os.linux.x, comp.os.linux.networking 
   ׷鿡  ߾  ˱ ٶ.

  3.  Ȳ(The Scene)

     ǻ͸ ϰ ִ ̴.  ù ° 
   ý  ۾  ۾    ̴.
   °   ý ߿   ׷ ۾ 
  ̴.  ù °   ý ÷̻ ι°
    ׷ ۾   Ѵ.  
  ý  ൿ ϵ ش.

  ,   ൿ  Ʈũ  ϳ ʿϴ. Ҹ
  ; X protocol Ʈũ 뿪   Ѵ. ׷ ణ
  γ  ǵ ִ  porotocol  ִ. 
    ؼ   α׷ ų  ִ.
  X protocol ࿡ ؼ,  dxpc
  http://ccwf.cc.utexas.edu/~zvonler/dxpc/ LBX
  http://www.ultranet.com/~pauld/faqs/LBX-HOWTO.html
  <http://www.ultranet.com/~pauld/faqs/LBX-HOWTO.html> 캸
  ٶ 𸣰ڴ (LBX mini-HOWTOε  ˷ִ.)

    ൿϱ     ؾ Ѵ:

  1.  ǻͷκ  ϴ  ÷() Ϸֱ.

  2.   ÷̿  Ѹ   
     α׷(Ŭ̾Ʈ) Ϸֱ.

  4.  ణ (A Little Theory)

  DISPLAY Ұ   ̴ܾ.   ýۿ,
  ÷ ϳ (ϰ) Ű ϳ, 콺 ϳ, ũ ϳ
  ̷ִ. ϳ ÷̴   ˷, ϳ 
  α׷ Ѵ.      α׷
  α׷ ڽſ  ÷̿   ϵ
  ش.

    ÷̴ Ѱ ̸ ǥѴ,  :

    DISPLAY=light.uni.verse:0

    DISPLAY=localhost:4

    DISPLAY=:0

  DISPLAY ȣƮ ̸ (light.uni.verse localhost ) ϳ ݷ
  (:) ϳ,  (04 ) ϳ ̷ִ.  DISPLAY ȣƮ
  ̸   Ű ִ ǻ ̸̴.  ȣƮ ̸
  ϸ  ȣƮ Ī  ȴ.  밳 0̴ -- 
   ÷̵  ǻͿ Ǿִٸ پϰ ٲ  ִ.

     .n  ÷ ǥø غ  ִٸ,
  װ ũ ȣ̴. ϳ ÷̴    ũ
    ִ. ׷ 밳   ũ  Ƿ,n=0
  Ʈ Ǿִ.

  DISPLAY ٸ ĵ Ѵ, ׷  κ 츮 
  Ѿ ̹Ƿ ٷ ʴ´.

  5.  Ŭ̾Ʈ Ϸֱ(Telling the Client)

  Ŭ̾Ʈ α׷( ,  ׷ α׷) ȯ溯
  DISPLAY 켭  ÷̿ ؾ ϴ° Ѵ. ׷,
     ɼ -display hostname:0 α׷  
   Ŭ̾Ʈ  ,    ִ.  Ȯϰ
   𸣴   ִ.

  츮 ǻʹ ܺο light ĺϰ,  uni.verse  ִ.
  츮    ̶, ÷̴
  light.uni.verse:0 ĺѴ. 츮, dark.matt.er Ҹ, 
  ǻͻ󿡼 ׸ α׷ xfig ϰ,  light װ
   ǥϱ⸦ Ѵ.

   ̹  ǻ dark.matt.er telnet Ǿִٰ
  Ѵ.

    ǻͿ csh ̶:

       dark% setenv DISPLAY light.uni.verse:0
       dark% xfig &

  Ǵ ſ:

       dark% xfig -display light.uni.verse:0 &

    ǻͿ sh ̶:

       dark$ DISPLAY=light.uni.verse:0
       dark$ export DISPLAY
       dark$ xfig &

  Ǵ ſ:

       dark$ DISPLAY=light.uni.verse:0 xfig &

  Ǵ 翬:

       dark$ xfig -display light.uni.verse:0 &

  telnet   ڵ  ȣƮ DISPLAY  ȣƮ
  DISPLAY Ѵ.   ̷  telnet 
  ִٸ,    ̴,   ص ȴ.
  ׷  , κ  telnet TERM ȯ 
  Ѵ; ణ   ŷ DISPLAY  TERM  
  ޵ǵ ϴ  ϴ.

   ޵ǵ ϴ    ۾   ִ
  ణ ũƮ ۼ  ϴ: telnet ϱ,
  DISPLAY  TERM δ. ׸  telnet Ѵ.
   ̷ Ŀ,   Ǵ .*shrc   ߿,
  TERMκ DISPLAY д´.

  6.   Ϸֱ(Telling the Server)

   ƹ κ    ̴.  
  ũ ƹ 츦   ִ   ʴ´. Ȥ 
  Ÿ  ƹ   ִ   ʴ´. -- 
  Ű  ÷ Ϻ ϶!

  Ҽ  ġ ÷̿ ＼ ϴ  
  輺 ̴   ϴ Ͱ.  ÷̿ ＼
     ũ鿡 а ,   Ű б,
   콺  б⸦   ִ.

  κ    ϴ    ˰ ִ.
  host list mechanism (xhost) magic cookie mechanism (xauth)
  װ̴.  δ ssh(the secure shell) ִµ  
   ų  ִ.

  6.1.  Xhost

  Xhost ȣƮ ̸ ٰŸ ΰ  Ѵ.  
    ȣƮ  Ѵ.  ȣƮ Ȯ 
  Ұϰ   ִ. ϶: ̰ Ȯ   ʰ 
  ǹѴ. ׷  ȣƮ   ̴!

   xhost α׷  ȣƮ    ִ. 
    (mechanism) ̿ϱ ؼ, ̷ ϶:

       light$ xhost +dark.matt.er

  ̰ ȣƮ dark.matt.erκ   Ѵ.  
   Ŭ̾Ʈ   â ϳ ǥڸ, 
  Ͽ, Ʒ    â Ŀ   㰡 ȿ
  Ѵ:

       light$ xhost -dark.matt.er

   ȣƮ Ȯ Ʒ  Ұϰ   ִ:

       light$ xhost +

  ̰ ȣƮ ＼ Ȯ Ұϰ Ͽ Գ 
  Ѵ.   ̿ڸ  ŷ   Ʈũ(ͳ
  )󿡼     ȵȴ.  Ʒ  ȣƮ
  Ȯ ٽ ϰ   ִ:

       light$ xhost -

  xhost -  ü ＼ Ʈκ  ȣƮ  ʴ´
  ( ϴ     ̴ -   κ͵
     ̴,    ȣƮκ͵  
   ̴).

  Xhost  ·ο ̴.  ȣƮ  ڵ 
    ʴ´. , ȣƮ ̸( ּ)   
  ִ.  ̰  ŷ   Ʈũ (  ͳݿ ̹
  ȭ ̿ PPP ＼  ) ִٸ ٶ ʴ.

  6.2.  Xauth

  Xauth ùٸ 踦 ƴ  ＼ Ѵ. 
  authorization record magic cookie Ҹ  ̴.  ΰ
    MIT-MAGIC-COOKIE-1 Ҹ.

    ÷̿  Ű ~/.Xauthority Բ Ѵ.
   ~/.Xauthority ׷ ̳ ٸ ڵ ϱ
   ӿ Ʋ. xauth α׷  Ű Ѵ,
  ⼭   Ī xauth ϰڴ.

    ԰ ÿ,  -auth ɼ Ű Ϸκ
  Ű ϳ д´. ׸ ,   Ű ϰ ִ
  Ŭ̾Ʈ  Ḹ Ѵ. ~/.Xauthority Ű ٲپ
  쿡,  ٲ  տ    ̴.

   Ŭ̾Ʈ  ϰ 䱸ϴ Ű   
  .  ׷ Ű  ο  ȴ; Ŭ̾Ʈ
   Ű  ʴ´ٸ Ű ~/.Xauthority 
  ʴ´.  David Wiggins ϸ:

           𸣴 ռ  X11R6.3
       ߰ߴ. ο ``'' Ȯ忡 Ͽ,   ü
        ϰ ο Ű Ű ǵ  ִ.
       ٳ, Ű ``ŷ  ''   ־
       ׷ Ű   α׷  ߿  
       ִ.   , ŷ   ͵ Ű/콺
       Է̳    ŷڼ ִ Ŭ̾Ʈκ
       տ    ̴. Ƚϱ ƴٸ, 
       Ƿε   ο ``'' Ϻθ ִ.

  xauth xhost 󿡼  Ȼ  .  Ư
  ǻ  Ư ڷκ ＼   ִ. xauth
  xhostó ּҸ ̴ Ͽ  ʴ´. ׸  Ѵٸ,
  xauth    xhost    ִ.

  6.2.1.  Ű ϱ(Making the Cookie)

  xauth ϱ Ѵٸ,  X server -auth authfile ɼ
  ؾ Ѵ.  startx ũƮ Ѵٸ,  ũƮ
  xauth ϱ   ̴.  startx ũƮ Ʒ
   authorization record .

  /usr/X11R6/bin/startxκ :

       mcookie|sed -e 's/^/add :0 . /'|xauth -q
       xinit -- -auth "$HOME/.Xauthority"

  Mcookie -ƿ Ű(ֿ Ʈ
  ftp://ftp.math.uio.no/pub/linux/) ӿ   α׷̴.
  Ҹ ,    Ÿ(, /dev/urandom
  ps -axlκ) ؼ Ű  ӿ ֱ   md5sum
    ִ:

       dd if=/dev/urandom count=1|md5sum|sed -e 's/^/add :0 . /'|xauth -q
       xinit -- -auth "$HOME/.Xauthority"

   startx ũƮ (root ƴ϶)   ٸ, startx
  Ȯ ϱ  ý   ų, ſ ڰ
  xdm ϰ ϶. ڰ   ų Ϸ  ʴ´ٸ,
   ~/.xserverrc ũƮ   ִ.   ũƮ
   ִٸ, xinit   X server ſ  ũƮ
  ȴ. ׸    ũƮ  ɼ  X
  server   ִ. ׷ Ϸ,  ~/.xserverrc Ű
  ϳ   magic cookie  ϰ ̾  X
  server ϵ ض:

       #!/bin/sh
       mcookie|sed -e 's/^/add :0 . /'|xauth -q
       exec /usr/X11R6/bin/X "$@" -auth "$HOME/.Xauthority"

    X  ϴ xdm Ѵٸ,  xauth 
    ִ. /etc/X11/xdm/xdm-config DisplayManager.authDir
  ڿ ϶. Xdm X server   X server -auth ɼ
  ѱ ̴.   ̶ xdm α ߴٸ, xdm  
   ~/.Xauthority Ű δ.     xdm(1)
    ٶ.  ,  /etc/X11/xdm/xdm-config
  ο    ִ:

       DisplayManager.authDir: /var/lib/xdm

  6.2.2.  Ű ϱ(Transporting the Cookie)

      ȣƮ light.uni.verse  X  ϰ
  ~/.Xauthority  Ű ,  Ŭ̾Ʈ ȣƮ
  dark.matt.er Ű ؾ  ̴.

   Ȩ 丮 㳷 Ǿ    ̴.
  ~/.Xauthority ϵ Ӵ, ׷ Ű  ޵ȴ.
  ׷, ٵ鸱  ִ:  ~/.Xauthority :0  Ű ϳ
   , dark ǻʹ lightǻ͸   ƴϰ darkǻ͸
     ̴.  Ű   ѷ ȣƮ ̸
  ؾ Ѵ;  װ   .  :0 light:0
   Ű   ν  ִ:

       #!/bin/sh
       cookie=`mcookie`
       xauth add :0 . $cookie
       xauth add "$HOST:0" . $cookie
       exec /usr/X11R6/bin/X "$@" -auth "$HOME/.Xauthority"

  Ȩ 丮 Ǿ ʴٸ,  rsh(the remote shell)
  Ű   ִ:

       light$ xauth nlist :0 | rsh dark.matt.er xauth nmerge -

  1.   ~/.Xauthority Ű  (xauth nlist :0).

  2. Ű dark.matt.er Ѵ (| rsh dark.matt.er).

  3. ű ~/.Xauthority Ű δ (xauth nmerge -).

  rsh    ʰ ִ 쵵   ִ. rsh
  Դٰ, Ȼ (  Ǵٸ, ȣƮ ̸ 
  ϴµ   ִ)  ִ.  rsh   ų
  ٶ ʴ´ٸ,    Ű ε   ִ:

  light$ echo $DISPLAY
  :0
  light$ xauth list $DISPLAY
  light/unix:0 MIT-MAGIC-COOKIE-1 076aaecfd370fd2af6bb9f5550b26926
  light$ rlogin dark.matt.er
  Password:
  dark% setenv DISPLAY light.uni.verse:0
  dark% xauth add $DISPLAY . 076aaecfd370fd2af6bb9f5550b26926
  dark% xfig &
  [15332]
  dark% logout
  light$

       rsh(1) xauth(1x)  
  ٶ.

    ȣƮ telnet    TERM̳ DISPLAY  ӿ
  Ű  ϴ   𸥴. ̰ TERM  
  DISPLAY   ϴ Ͱ Ȱ   ̴. 5 :
  Ŭ̾Ʈ ˷ֱ(Telling the Client) ƶ.  ħ 
   κ  ڽ  غ, ׷   ̰
  Ȯ̳    ִ ñϴ.

  6.2.3.  Ű ϱ(Using the Cookie)

  dark.matt.er, xfig پ, X α׷  ڽ
  ޱ  Ű  ǻͿ ~/.Xauthority   ̴.

  6.3.  Ssh

  Authority record ȣȭ ʰ ߼Ѵ.   
      غҴٸ, ssh(the secure shell) ϶.
  ȣȭ  󿡼 X protocol  ų ̴. Դٰ, 
  ܿ   ִ.  ܿ  δ  ýۿ 
    ִ.  ׳ http://www.cs.hut.fi/ssh/, ssh Ȩ
  湮 .

   ̳ ȣȭ X ῡ ؼ  ۿ ٸ  ƴ 
  ְڴ°?  Ƹ  Ű (Kerberos) ˰ ?

  7.   ذ(Troubleshooting)

  ó     α׷  õ ,
  밳 α׷  ʴ´. ⿡ ణ  
  ޽ װ͵ , ǵ ǵ    ִ ذå
  ִ.

       xterm Xt error: Can't open display:

  DISPLAY ȯ溯  ʴ ٰ, -display ÷׷ε
  α׷ ÷̸ ˷ ʾҴ. α׷ ֺ
  ڿ þ,   ־.   ذϱ
  ؼ, DISPLAY ȯ溯  Ȯ ϶ (   
  setenv export ).

       _X11TransSocketINETConnect: Can't connect: errno = 101
       xterm Xt error: Can't open display: love.dial.xs4all.nl:0

   101 ``Ʈũ   '' Ȳ̴. α׷
   Ʈũ   ߴ.  DISPLAY ùٸ
  ߴ,  Ŭ̾Ʈ  ǻͷ  
  캸ƶ (·   밳 α Ǿְ Ŭ̾Ʈ
  telnet ϰ ־ Ѵ).

       _X11TransSocketINETConnect: Can't connect: errno = 111
       xterm Xt error: Can't open display: love.dial.xs4all.nl:0

   111 `` '' Ȳ̴.   õ 
  ǻͿ    ,    ű⿡ 
  ʴ´.  ùٸ  ̸ ÷  ߴ
  캸ƶ.

       Xlib: connection to ":0.0" refused by server
       Xlib: Client is not authorized to connect to Server
       xterm Xt error: Can't open display: love.dial.xs4all.nl:0.0

  Ŭ̾Ʈ    ־,  Ŭ̾Ʈ 
  ϴ   ʾҴ ( ߴ).  Ŭ̾Ʈ
  ùٸ magic cookie ϰ, Ű Ⱑ ȵǵ Ȯ ϶
  ( ο  ϸ ο Ű Ѵ).

