SSHelter is a simple tool letting you sync across your computers parts of your ssh config like the host machines and specific config for each (like Port Forwarding). It was inspired by the really neat Termius but since it's a bit pricy for simple hobbyists, I decided to make my own implementation of the features I most needed.
This does not sync your SSH keys yet, as I'm not comfortable to ensure the security required for this.
You probably want to use this with the official client.
The setup is quite easy. I am only distributing this software (serverside at least) as a Docker image + docker-compose. If you want to use it any other way, go for it but no support will be given.
Make a folder somewhere on your server. Copy the docker-compose.prod.yml
as docker-compose.yml
in it, then copy the .env.prod
as .env
and fill the two secrets required.
You need to change the port for the web container to something free on your server, or remove it entirely if you are using a docker-aware reverse proxy like Traefik (But if you are using this, you probably know how to set it up by yourself).
Then setup your sub-domain / path in your reverse proxy to point to this container.
Start it up with docker-compose up -d
.
You then need to generate the JWT keys: docker-compose exec sshelter bin/console lexik:jwt:generate-keypair --overwrite --no-interaction
You will need to create your user account:
$ docker-compose exec php bin/console sshelter:user:create [USERNAME] <password>
Password is optional, if you don't set one, the server will generate one for you.
That's it. Go ahead and setup your client.
SSHelter - Simple ssh config sync software Copyright (C) 2021 - Oxodao
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
So yeah this is only a simple side project, if you want to contribute by all mean go ahead, no guidelines or so just don't be a jerk. I reserve the right to refuse any PR without explanation or stuff like that. Maybe one day this software will grow in feature-set enough for me to consider it as a real project and have a clearer way of handling this stuff.