GS-SFTP(1)

✨ GS-SFTP β€” the manual, but make it cute ✨

okay so bestie, you know how I feel about gs-sftp(1). it's the Secure File Transfer Protocol over Global Socket situation and I'm literally obsessed. let me walk you through it, no gatekeeping πŸ’–


🌸 NAME 🌸

gs-sftp β€” Secure File Transfer Protocol via Global Socket. yes that's the whole vibe. SFTP but the Global Socket way. slay.


πŸŽ€ SYNOPSIS πŸŽ€

gs-sftp [-lTR] [-s secret] [-k keyfile]

that's it. that's the whole thing. short and iconic, as she should be πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so gs-sftp is a wrapper script for gs-netcat. that's the tea. what it does is let two users set up a secure SFTP connection via the Global Socket Relay Network (GSRN).

why would you want this? because sometimes both of you are sitting behind NAT or a Firewall and you literally cannot connect to each other directly. the GSRN is the matchmaker. it fixes that. 🫢


✨ OPTIONS ✨

  • -s secret β€” a password, picked by you, the user. both users have to use the same password to connect. it's giving shared secret, it's giving iykyk πŸ”
  • -k FILE β€” a file that contains the password. for when you don't wanna type it out.
  • -l β€” Server mode. default mode is client, just so you know.
  • -R β€” puts the server (-l) into read-only mode. attempts to open files for writing, plus any other operations that change the state of the filesystem, will be denied. nothing gets touched, nothing gets changed. she's just looking πŸ‘€
  • -T β€” use TOR. the gs-sftp tool will connect via TOR to the GSRN. this requires TOR to be installed and running. the IP and PORT of the TOR server can be set using environment variables. (see below!)

and btw, there are more options over in gs-netcat(1). go look. πŸ’œ


🌈 EXAMPLES 🌈

Example 1 β€” SFTP Server listening for clients using password 'MySecret':

$ gs-sftp -s MySecret -l

Connect sftp-client using the same password:

$ gs-sftp -s MySecret

see how the password matches? that's the whole trick. same password, both sides, boom, connected. periodt. πŸ”₯


πŸ“ ENVIRONMENT πŸ“

there's a whole list of supported environment variables, and they live in gs-netcat(1). go check that page. ✨


πŸ‘‘ SEE ALSO πŸ‘‘

gsocket(1), gs-netcat(1), sftp(1)

the squad. the friend group. all of them are worth a read. 🌸


πŸ’€ BUGS πŸ’€

efforts have been made to have gs-sftp "do the right thing" in all its various modes. so like, she's trying her best, fr fr.

but if you believe it is doing the wrong thing under whatever circumstances, please notify me (skyper@thc.org) and tell me how you think it should behave. don't be shy, bestie, I genuinely want to know. πŸ™ˆ

okay that's the whole page πŸ’– this was gs-sftp(1) from the General Commands Manual, and the version you're looking at came from Debian on October 12, 2020. love that for us. now go transfer some files securely. mwah πŸŽ€βœ¨