summaryrefslogtreecommitdiff
path: root/lbxinit
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2002-02-28 14:09:04 +0000
committerJonas Smedegaard <dr@jones.dk>2002-02-28 14:09:04 +0000
commitcafcd5d4368e57f162a641ed3f4835ecb5a6d391 (patch)
tree56166fbf16289d8b388cf0f1f9b51e28c3c4bdf9 /lbxinit
Initial revision
Diffstat (limited to 'lbxinit')
-rwxr-xr-xlbxinit86
1 files changed, 86 insertions, 0 deletions
diff --git a/lbxinit b/lbxinit
new file mode 100755
index 0000000..6c3080f
--- /dev/null
+++ b/lbxinit
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+# Neat little script for easy use of lbxproxy with ssh.
+# Based on this: http://www.gelatinous.com/aaron/tips/lbxproxy
+# and adapted by Jonas Smedegaard <dr@jones.dk>
+
+# Changes from original script:
+# * Instead of another custom script "remote-frame", simply open a
+# terminal and quit lbxproxy on exit.
+# * Ssh compression and X forwarding is explicitly enabled.
+# * Path to lbxinit is not hardcoded - just place this script somewhere
+# in your path.
+# * Get rid of "l" and "r" options (more intuitively in my opinion).
+
+# The following is from the web page:
+
+# How do I get lbxproxy to work with xauth/ssh? I can't connect.
+#
+# I kept trying to get lbxproxy to work over ssh, or even just with
+# plain xauth. The only way I could make it work was with 'xhost +'.
+# Finally I found an article by a Ted Rathkopf that showed me a way to
+# make it work. If you are getting access control problems to your X
+# server, here's what you need to do.
+#
+# Instead of just extracting your cookie or attempting to use the ones
+# that ssh creates for you, you must get your real xauth key over to the
+# target and fudge it so that the display entry is adjusted for the
+# proxy (:63 by default).
+#
+# Example:
+#
+# On my DSL host, I use 'lbxinit r ' (r is for remote). This causes an
+# 'lbxinit l ' on the remote host -- (l is for local). Yeah, there are
+# easier ways to do this, but I wanted to have one script I could copy
+# around.
+#
+# [the script itself]
+#
+# Hey, what's remote-frame?
+#
+# You need to start some long-running X app in the local section or else
+# lbxproxy gets huffy and quits after the first client exits, even
+# though the man page says otherwise. So, I open up a frame of my emacs
+# on that host.
+#
+# I turned off compression with -nocomp because ssh does its own stream
+# compression. You might need to enable it with the -C argument to ssh.
+#
+# The last thing I did was make an 'lbx' shell alias that sets my
+# DISPLAY environment to :63.
+#
+# Last modified: 2000/11/17
+
+PATH=${PATH}:/usr/X11R6/bin
+SCREEN=63
+
+# Empty hostname indicates executed on target host
+if [ "x$1" = "x" -a $# -ge 3 -a $# -le 4 ]; then
+ LHOST=$2
+ COOKIE=$3
+ PRG=$4
+ [ "x$PRG" = "x" ] && PRG="/usr/bin/x-terminal-emulator"
+
+ xauth add $LHOST:$SCREEN $COOKIE
+ xauth add :$SCREEN $COOKIE
+
+ lbxproxy :$SCREEN -nocomp -terminate -compstats > $HOME/.lbxproxy 2>&1 &
+ export DISPLAY=":63"
+ exec $PRG
+# $PRG
+
+elif [ $# -ge 1 -a $# -le 3 ]; then
+ RHOST=$1
+ RCOOKIE=`xauth list $DISPLAY | awk '{print $2 " " $3}'`
+ SSHOPTS="-C -X"
+ [ "x$3" != "x" ] && SSHOPTS="$SSHOPTS -l $3"
+# ssh -f $RHOST bin/lbxinit l $RHOST "'$RCOOKIE'"
+ ssh $SSHOPTS -f $RHOST lbxinit "''" $RHOST "'$RCOOKIE'" "'$2'"
+else
+ echo "Usage: lbxinit host [prg [uid]]"
+ echo " (and internally: lbxinit '' host protocol cookie [prg])"
+ echo
+ echo "Example: lbxinit an.other.host 'xterm +aw' js"
+ echo " (where 'js' is the login name on an.other.host)"
+ exit 1
+fi