#!/bin/bash # # Wrapper around ssh and vncviewer # # Parameters BASENAME="`basename $0`" SERVER="$1" REMOTEUSER="$2" LOCALPORT="${3:-5901}" REMOTEPORT="${4:-5901}" # Clipboard options # In practice, clipboard limitations are not working as expected # So please do not use this script if you don't want to automatically share clipboard with the remote system # This is probably a bug on xtigervncviewer VIEWER_OPTS="-AcceptClipboard=off -SendClipboard=off -SetPrimary=off -SendPrimary=off" function usage { echo "usage: $BASENAME [user] [localport] [remoteport]" cat <:~/.vnc/passwd ~/.vnc/.passwd # copy the secret $BASENAME # use our magic script to do everything else EOF exit 1 } # Usage if [ "$1" == "--help" ]; then usage fi # Set user if [ -z "$REMOTEUSER" ]; then REMOTEUSER="`whoami`" fi # Set config if [ -z "$SERVER" ]; then if [ -h "$HOME/.vnc/$REMOTEUSER@default.passwd" ]; then SERVER="$(basename `readlink $HOME/.vnc/$REMOTEUSER@default.passwd` .passwd)" elif [ -h "$HOME/.vnc/default.passwd" ]; then SERVER="$(basename `readlink $HOME/.vnc/default.passwd` .passwd)" else usage fi fi # Check if vncserver is running in the remote server and start otherwise ssh $REMOTEUSER@$SERVER < /dev/null; then /usr/bin/vncserver -alwaysshared -dpi 96 -localhost :1 fi else /usr/bin/vncserver -alwaysshared -dpi 96 -localhost :1 fi EOF # See http://www.g-loaded.eu/2006/11/24/auto-closing-ssh-tunnels/ # Optional SSH compression #ssh -C -c blowfish -f -L 5901:127.0.0.1:5901 $SERVER sleep 10 ssh -f -L $LOCALPORT:127.0.0.1:$REMOTEPORT $REMOTEUSER@$SERVER sleep 10 # Run VNC client # Copy $SERVER:~/.vnc/passwd into $HOME/.vnc/$SERVER.passwd for passwordless login if [ -e "$HOME/.vnc/$REMOTEUSER@$SERVER.passwd" ]; then vncviewer $VIEWER_OPTS -passwd $HOME/.vnc/$REMOTEUSER@$SERVER.passwd localhost:$LOCALPORT else vncviewer $VIEWER_OPTS localhost:$LOCALPORT fi