/AwesomePortForwarding

A simple UI for forwarding ports over SSH

Primary LanguageJavaScript

Awesome Port Forwarding

A simple but powerful GUI for forwarding ports over SSH. Inspired by VSCode's Remote SSH port forwarding, but without needing a new IDE window for each remote machine.

Features:

  • Connect to hosts given in ~/.ssh/config file
  • Favicons!
  • Open a remote in a terminal or VSCode
  • Convenient shortcuts to mount with SSHFS and view nvidia-smi on GPU machines

TODO:

  • Support password and other auth besides public key [if ssh-askpass works]
  • Open a terminal on the given remote
  • Ability to refresh the connections and close existing ones
  • Check when connections die [kinda]
  • Don't hang when something goes wrong 🙃
  • Mount a remote with sshfs
  • Show #gpus?
  • Forward a port that is not listed
  • Connect to hosts with a wildcard in ssh config

Installing

It should work on MacOS and Linux with npm installed (eg. brew install node if you use homebrew)

git clone https://github.com/jamt9000/AwesomePortForwarding/
cd AwesomePortForwarding
npm install
./launch.sh # or `npm start` to run with debug output in the terminal

Requires nc and ssh (from OpenSSH) on the local machine and lsof or netstat on the remote machines.

Questions

How can I use iTerm2 instead of Terminal.app as the terminal launched on Mac? You should set iTerm2 as the default handler for the SSH protocol

Cat icon by Freepik from www.flaticon.com