aboutsummaryrefslogtreecommitdiff
path: root/local/bin/sshvnc
diff options
context:
space:
mode:
Diffstat (limited to 'local/bin/sshvnc')
-rwxr-xr-xlocal/bin/sshvnc17
1 files changed, 17 insertions, 0 deletions
diff --git a/local/bin/sshvnc b/local/bin/sshvnc
new file mode 100755
index 0000000..8b6fa0d
--- /dev/null
+++ b/local/bin/sshvnc
@@ -0,0 +1,17 @@
+#!/bin/bash
+set -eu
+
+target="$1"
+
+localport="5901"
+while lsof -i:$localport; do
+ localport=$((localport + 1))
+done
+
+ssh -L "$localport":localhost:5900 "$target" \
+ 'x11vnc -bg -localhost -display :0'
+
+vncviewer "localhost:$localport"
+
+ssh "$target" 'x11vnc -remote stop -localhost -display :0'
+ssh -O cancel -L "$localport":localhost:5900 "$target"