diff options
Diffstat (limited to 'xclip-ssh')
-rwxr-xr-x | xclip-ssh | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/xclip-ssh b/xclip-ssh deleted file mode 100755 index 46c94b3..0000000 --- a/xclip-ssh +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env bash -# -# Intersystem communication via clipboard over SSH! -# Transmits data using the clipboard via SSH session. -# -# Description: -# -# xclip-ssh does what the same says - xclip over SSH. -# Works even with a remote host in a .onion service! -# And even between virtual machines! -# -# Works around the following PoC: -# -# ssh -X <server> # log in the remote system -# DISPLAY=:0 xclip -o # extracts remote's clipboard -# -# Usage: -# -# xclip-ssh send <server> [stdin|data] -# xclip-ssh receive <server> [stdout|xclip] -# -# Examples: -# -# cat /path/to/file | xclip-ssh send server -# xclip-ssh send server "some text" -# xclip-ssh receive server stdout > saved.txt - -# Parameters -BASENAME="`basename $0`" -ACTION="$1" -SERVER="$2" -STORE="$3" - -# Display usage -function xclip_ssh_usage { - echo "usage: $BASENAME <send|receive> <server> [data]" - exit 1 -} - -# Send data -function xclip_ssh_send { - if [ -z "$STORE" ]; then - STORE="xclip" - fi - - if [ "$STORE" == "xclip" ]; then - CONTENT="`xclip -o`" - elif [ "$STORE" == "stdin" ]; then - mapfile -t CONTENT - #printf '%s\n' "${CONTENT[@]}" - else - shift 2 - CONTENT="$*" - fi - - # See https://askubuntu.com/questions/804095/how-do-i-disable-the-message-of-the-day-motd-on-ubuntu-14-04 - ssh -q -X $SERVER bash <<EOF - ##### BEGIN REMOTE SCRIPT ##### - if ! which xclip &> /dev/null; then - echo "$BASENAME: missing xclip in the remote server" - else - echo ${CONTENT[@]} | DISPLAY=:0 xclip - fi - ##### END REMOTE SCRIPT ####### -EOF -} - -# Receive data helper -function xclip_ssh_helper { - ssh -q -X $SERVER bash <<EOF - ##### BEGIN REMOTE SCRIPT ##### - if ! which xclip &> /dev/null; then - echo "$BASENAME: missing xclip in the remote server" - else - DISPLAY=:0 xclip -o - fi - ##### END REMOTE SCRIPT ####### -EOF -} - -# Receive data -function xclip_ssh_receive { - if [ -z "$STORE" ]; then - STORE="xclip" - fi - - if [ "$STORE" == "stdout" ]; then - xclip_ssh_helper - echo "" - else - xclip_ssh_helper | xclip -i - fi -} - -# Check -if [ -z "$2" ]; then - xclip_ssh_usage -elif [ "$ACTION" != "send" ] && [ "$ACTION" != "receive" ]; then - xclip_ssh_usage -elif ! which xclip &> /dev/null; then - echo "$BASENAME: please install xclip" - exit 1 -fi - -# Dispatch -xclip_ssh_$ACTION $* |