A Python-based SSH forced-command gatekeeper for remote callbacks.
Project description
ssh-backchannel
WARNING. This is vibe coded. Review before use.
Sometimes I want to do things on my local machine from a remote machine I am ssh'd into. ssh-backchannel provides a means to do so - in a moderately secure way. It allows you to run a local command from a remote machine, while asking for confirmation from your local machine.
You must have ssh running on your machine and have an IP address addressable from another machine. This can work well if you are using a VPN or a local networing.
Architecture
A limited ssh key is created and passed to other machines when you log in. This key can only run a command which asks you for permission before running commands.
Installation
You can install ssh-backchannel with pipx.
pipx install ssh-backchannel
The set up your machine and the remote machine run.
ssh-backchannel configure
ssh-backchannel setup-remote user@server
Also install backchannel on the remote macine.
Usage
Once you have setup you macine and the remote machine you can run:
ssh-backchannel run ls
To run ls on your home machine.
Alternatives and prior work
If you are happy with it you could use ssh auth forwarding and just ssh into your machine. This adds a little more security since you must approve each command.
If you just want to write to your clipboard there are tools which use OSC escape codes to send data via your terminal. The only downside is that you need to set up terminal to handle deal with this. I do not like debugging this sort of stuff.
Caveat
This only works if your host can be reached from the remote machine and may involve openning your machine ot the internet or using a VPN / being on the same subnet. Reverse proxying would probably be the easiest fix.
It is assumed that there is only one user who consistently uses a machine.
This only with X11.
Alternatively, you could use reverse proxying in your ssh config.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ssh_backchannel-1.5.0.tar.gz.
File metadata
- Download URL: ssh_backchannel-1.5.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54f470448930af04ff519646830fc1eae38c32b6833d34b5077cf0e679cc01dd
|
|
| MD5 |
7a936796fb442e39e31f9812811c7776
|
|
| BLAKE2b-256 |
d86e14da5e4b007aa6cc8097a11af56025646850938f10e94d66a7e464948b59
|
File details
Details for the file ssh_backchannel-1.5.0-py3-none-any.whl.
File metadata
- Download URL: ssh_backchannel-1.5.0-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a4a60aeb6520e139fc27b96898916ffd789285c588084977ec5c317f3264101
|
|
| MD5 |
8d59850033b48058dac3a802f9aa908b
|
|
| BLAKE2b-256 |
cbe9441953c5d16e8cf448426dc4d3ba9ef3294a0a62c685c61f5952d19d877b
|