Thanks to visit codestin.com
Credit goes to github.com

Skip to content

rahulg/rclip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Wat

Expose your clipboard over TCP. This sounds ridiculous, especially if you use a password manager, until you realise that this allows you to access your clipboard while sshed into a box.

NOTE: you MUST trust root and anyone able to log in as your user on the remote and local systems if you use this, since they can connect to the TCP socket and pull the contents of your clipboard. In addition, anyone with packet capture privileges on the remote end will see your traffic in cleartext.

Set-up

Scenario: you have a Mac that you use as a client with a remote dev box running Linux.

NOTE: your machines will have to have a reasonable amount of time synchronisation (within 2s), as the timestamp is used to prevent replay attacks. If your environment has a time drift problem, edit TIME_DRIFT_ALLOWANCE in rclip.

Place rclip somewhere convenient on your local Mac, we'll go with /usr/local/bin.

Generate a shared secret by running rclip generate-secret.

Edit your SSH config file (~/.ssh/config), and add the following:

Host my.dev.box
	PermitLocalCommand yes
	LocalCommand /usr/local/bin/rclip ensure-server 9110 &
	RemoteForward 9110 localhost:9110

On your remote dev box, put rclip somewhere in your PATH (such as /usr/local/bin).

Run rclip set-secret on the remote box and paste the secret from above.

rclip paste on the remote box will now paste the contents of your local box's clipboard.

It's recommended that you symlink rclip as pbcopy and pbpaste so that (a) your muscle memory continues to work, and (b) neovim etc. pick it up and use it as your clipboard manager.

cd /usr/local/bin
ln -s rclip pbcopy
ln -s rclip pbpaste

pbpaste on the remote box functions the same as rclip paste, and the same applies for pbcopy and rclip copy.

Set-up: launchd edition

Conceptually, it is preferable to launch your rclip server using launchd, but that increases the latency of copying & pasting by around 500ms. I consider waiting nearly a second for a paste to be annoying.

If you don't, then skip the LocalCommand directives in your SSH config file, drop io.rahulg.rclip.plist from this repo into ~/Library/LaunchAgents/, and run launchctl load -w ~/Library/LaunchAgents/io.rahulg.rclip.plist.

CLI Details

rclip [mode] [port]

mode and port are optional. port defaults to 9110, and mode defaults to server.

Valid modes:

  • server (runs the server)
  • secret (prints your secret)
  • generate-secret (generates a new secret)
  • set-secret (sets your secret)
  • copy (runs pbcopy on the server)
  • paste (runs pbpaste on the server)
  • ensure-server (checks if a server is running, otherwise runs one)

Any symlinks to rclip ending in copy or paste to automatically call the respective command.

About

Exposes your clipboard over a TCP socket

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages