Piping Server Command Sheet
Piping Server
random fragment
search
File transfer
Sender
curl -T myfile https://ppng.io/myfile081
Receiver
curl https://ppng.io/myfile081 > myfile
Integrity
none
shasum
Progress
progress with pv
File transfer with end-to-end encryption
Sender
cat myfile | openssl aes-256-cbc -pbkdf2 | curl -T - https://ppng.io/myfile081
Receiver
curl -sS https://ppng.io/myfile081 | openssl aes-256-cbc -d -pbkdf2 > myfile
E2E encryption
openssl
gpg
Integrity
none
shasum
Progress
progress with pv
Copy & Paste (macOS)
Sender
pbpaste | curl -T - https://ppng.io/clip081
Receiver
curl https://ppng.io/clip081 | pbcopy
Directory transfer (tar)
Sender
tar c . | curl -T - https://ppng.io/mydir081.tar
Receiver
curl https://ppng.io/mydir081.tar | tar x
tar/tar.gz
tar
tar.gz
Directory transfer (tar) (E2EE)
Sender
tar c . | openssl aes-256-cbc -pbkdf2 | curl -T - https://ppng.io/mydir081.tar
Receiver
curl https://ppng.io/mydir081.tar | openssl aes-256-cbc -d -pbkdf2 | tar x
tar/tar.gz
tar
tar.gz
E2E encryption
openssl
gpg
Directory transfer (zip)
Sender
zip -r - . | curl -T - https://ppng.io/mydir081.zip
Receiver
curl https://ppng.io/mydir081.zip > mydir.zip
Directory transfer (zip) (E2EE)
Sender
zip -r - . | openssl aes-256-cbc -pbkdf2 | curl -T - https://ppng.io/mydir081.zip
Receiver
curl -sS https://ppng.io/mydir081.zip | openssl aes-256-cbc -d -pbkdf2 > mydir.zip
E2E encryption
openssl
gpg
Port forwarding
Server host
curl -sSN https://ppng.io/aaa081 | nc localhost 22 | curl -sSNT - https://ppng.io/bbb081
Client host
curl -sSN https://ppng.io/bbb081 | ( nc -lp 2222 2>/dev/null || nc -l 2222 ) | curl -sSNT - https://ppng.io/aaa081
host
server host port
client host port
path1
path2
client host serving
nc
GNU: nc -lp
BSD: nc -l
socat
E2E encryption
none
openssl
Multiplexer
none
yamux
Port forwarding (E2EE inputting pass)
Server host
read -p "password: " -s pass && curl -sSN https://ppng.io/aaa081 | stdbuf -i0 -o0 openssl aes-256-ctr -d -pass "pass:$pass" -bufsize 1 -pbkdf2 | nc localhost 22 | stdbuf -i0 -o0 openssl aes-256-ctr -pass "pass:$pass" -bufsize 1 -pbkdf2 | curl -sSNT - https://ppng.io/bbb081; unset pass
Client host
read -p "password: " -s pass && curl -sSN https://ppng.io/bbb081 | stdbuf -i0 -o0 openssl aes-256-ctr -d -pass "pass:$pass" -bufsize 1 -pbkdf2 | ( nc -lp 2222 2>/dev/null || nc -l 2222 ) | stdbuf -i0 -o0 openssl aes-256-ctr -pass "pass:$pass" -bufsize 1 -pbkdf2 | curl -sSNT - https://ppng.io/aaa081; unset pass
host
server host port
client host port
path1
path2
client host serving
nc
GNU: nc -lp
BSD: nc -l
socat
Multiplexer
none
yamux