Description
ShellHub is a modern SSH server for remotely accessing Linux devices via command line (using any SSH client) or web-based user interface, designed as an alternative to sshd. It enables teams to easily access any Linux device behind firewall and NAT.
ShellHub alternatives and similar tools
Based on the "SSH" category.
Alternatively, view ShellHub alternatives based on common mentions on social networks and blogs.
-
Gravitational Teleport
The easiest, most secure way to access infrastructure. -
KeyBox
Bastillion is a web-based SSH console that centrally manages administrative access to systems. Web-based administration is combined with management and distribution of user's public SSH keys. -
Multi SSH Config
Mirror of https://gitlab.com/osiux/multi-ssh-config -
SSH Power Tool
Execute commands and upload files to many servers simultaneously without using pre-shared keys.
Static code analysis for 29 languages.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ShellHub or a related project?
README
Centralized SSH for the edge and cloud computing.
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> <!-- ALL-CONTRIBUTORS-BADGE:END -->
ShellHub Cloud • Documentation • Contributing • Getting Help
ShellHub is a modern SSH server for remotely accessing Linux devices via command line (using any SSH client) or web-based user interface, designed as an alternative to sshd. Think ShellHub as centralized SSH for the the edge and cloud computing.
Features
- Native SSH support: Access any device behind the ShellHub centralized SSH server using standard tools such as OpenSSH Client , PuTTY and so on.
- SCP/SFTP support: Copy files from/to device using industry standard tools without 3rd party applications.
- Public-key authentication: Allow multiple users to log in as the same system user without having to share a single password between them, revoke a single users's access without revoking access by other users and make it easier for a single user to log in to many accounts without needing to manage many different passwords.
- Firewall rules: ShellHub provides flexible firewall for filtering SSH connections. It gives a fine-grained control over which SSH connections reach the devices.
- Audit logging: Every time a SSH connection is made to ShellHub a session is created and stored on the server for audit purposes.
- Session recording: All interactive SSH sessions are recorded, which includes all of the user activity that occurs during the session. Once recorded, it can be replayed via a built-in session player in the ShellHub Web UI.
Getting started
To self-host ShellHub on your own servers and managing your own infrastructure (installation, maintenance, upgrades, backup and so on) follow our Self-Hosting Guide.
If you prefer to use the cloud hosted service where we manage everything for your ease and convenience, create a free account in ShellHub Cloud.
Contributing
ShellHub is an open source project and we love to receive contributions from our community. If you would like to contribute, please read our [contributing guide](CONTRIBUTING.md).
Getting Help
You are welcome to submit any questions, participate in discussions and request help with any issue in our Gitter Channel.
License
ShellHub is licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE.md) for the full license text.
Development Environment Setup
First of all, you'll need to generate required keys for the services:
$ make keygen
Set the environment to development:
$ echo "SHELLHUB_ENV=development" >> .env.override
Start the whole environment:
$ make start
Avoid to use
docker-compose
directly (unless you know what you're doing); instead usebin/docker-compose
wrapper.
Wait for all services to be ready then create initial user by running:
$ ./bin/add-user <username> <password> <email>
Create a namespace for grouping devices and set user as owner:
$ TENANT_ID=00000000-0000-4000-0000-000000000000 ./bin/add-namespace <namespace> <owner>
Don't change the value of
TENANT_ID
, this value is hardcoded during agent initialization in development mode.
When you open ShellHub UI for the first time, be sure to accept pending device.
See the [devscripts which can be useful for development](./devscripts).
Authors
ShellHub was created by O.S. Systems.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> Luis Gustavo S. Barreto💻 Otavio Salvador💻 Leonardo da Rosa Silveira João💻 Eduardo Kluwe Veiga💻 Vagner Nornberg💻 Fabio Berton📦 Rafael Gomes🚇 Mike💻 inductor(Kohei)🚇 Y.Horie💻 Robinson D. S. Santos💻 Lukas Bachschwell📖 💻 Shawn💻 brammp💻 Sam McKelvie💻 Henry Barreto💻 Antony Rafael💻 Gessé Carneiro💻 Benoît Stahl💻
<!-- markdownlint-restore --> <!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the all-contributors specification. Contributions of any kind welcome!
*Note that all licence references and agreements mentioned in the ShellHub README section above
are relevant to that project's source code only.