diff options
author | Jonas Smedegaard <dr@jones.dk> | 2002-02-28 14:09:04 +0000 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2002-02-28 14:09:04 +0000 |
commit | cafcd5d4368e57f162a641ed3f4835ecb5a6d391 (patch) | |
tree | 56166fbf16289d8b388cf0f1f9b51e28c3c4bdf9 /lbxinit |
Initial revision
Diffstat (limited to 'lbxinit')
-rwxr-xr-x | lbxinit | 86 |
1 files changed, 86 insertions, 0 deletions
@@ -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 |