Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aswinbennyofficial/sushi
A web platform enabling users to save SSH credentials and access remote machines securely through a web-based terminal, providing SSH access even via smartphones.
https://github.com/aswinbennyofficial/sushi
go go-chi golang gorilla-websocket hacktoberfest linux pbkdf2 pgx pgxpool postgres postgresql ssh ssh-server websocket xterm xterm-js zerolog
Last synced: 3 months ago
JSON representation
A web platform enabling users to save SSH credentials and access remote machines securely through a web-based terminal, providing SSH access even via smartphones.
- Host: GitHub
- URL: https://github.com/aswinbennyofficial/sushi
- Owner: aswinbennyofficial
- License: agpl-3.0
- Created: 2024-07-03T08:14:13.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-11-09T17:03:21.000Z (3 months ago)
- Last Synced: 2024-11-09T18:17:45.355Z (3 months ago)
- Topics: go, go-chi, golang, gorilla-websocket, hacktoberfest, linux, pbkdf2, pgx, pgxpool, postgres, postgresql, ssh, ssh-server, websocket, xterm, xterm-js, zerolog
- Language: Go
- Homepage: https://sushi.aswinbenny.in/
- Size: 2.13 MB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## SuSHI (Work in Progress)
SuSHI is a web-based platform that helps to make SSH connections to remote machines from any location, with a browser based terminal.
### Features
- Secure SSH Connections: Connect to remote machines securely using SSH.
- Web-Based Terminal: Access the terminal interface directly in your web browser.
- Real-Time Communication: Utilize WebSockets for real-time communication between the client and server.
- User-Friendly Interface: Simple and intuitive interface for ease of use.
- Encrypted Private Keys: Private keys are stored in database securely using AES-CFB encryption with a key derived from PBKDF2-HMAC-SHA256 (10000 iterations), utilizing a unique salt and IV for each encryption operation.### Screenshot
![screenhot 1](./static/images/homepage.png)
![screenhot 2](./static/images/dashboard.png)
![screenhot 3](./static/images/connected-terminals.png)
![screenhot 5](./static/images/add-machine.png)
![screenhot 4](./static/images/enter-password.png)## Running app
- `mkdir db`
- `mkdir db/data`
- `sudo chown -R 1001:1001 ./db/data`
- Have the docker-compose.yaml file with all the env values
- `docker compose up`
- By default the server will be up on `localhost:8080`- It you have issues `connection closed` while opening terminal change the `wss://` to `ws://` in the `static/terminal.html` (line no. 95)