Coder Social home page Coder Social logo

ekam-g / globalssh Goto Github PK

View Code? Open in Web Editor NEW
15.0 1.0 1.0 2.88 GB

SSH, but you can connect across networks with out need to port forward, easier setup, and more secure.

Home Page: https://carghaiwebsite.web.app/

License: GNU Affero General Public License v3.0

Go 56.06% Shell 2.14% Makefile 1.16% Perl 40.64%
ssh global easy easy-ssh network global-ssh globalssh

globalssh's Introduction

Welcome To Global SSH Beta! ๐ŸŽ‰๏ธ

Displaying Global SSH

Showing Colaboration Feature

Live Demo

What Is The Problem With SSH?

SSH can be difficult to set up and maintain, requiring software installation and configuration on both local and remote systems, as well as firewall and access control configuration. Global SSH removes this complexity, making it accessible to non-technical users.

Moreover, Global SSH is more scalable than SSH, particularly in larger networks. With SSH, configuring and managing port forwarding settings becomes increasingly challenging as the network grows. Any changes or updates to port forwarding settings must be made on each device individually, which can be time-consuming and error-prone. In contrast, Global SSH requires only a Redis database to handle connections and can be easily scaled by creating new free accounts.

In summary, Global SSH offers an easier, more secure, and scalable alternative to SSH, with a simple setup process and minimal maintenance overhead.

Features ๐Ÿš€๏ธ

  1. Easy Setup: Set up Global SSH in less than 5 minutes by placing the key file (redis_key.json) in the home directory (~) of any Unix computer. This streamlined process allows for quick configuration of hosts or clients.

  2. Network Scalability: Global SSH eliminates the need for port forwarding, making server-client connections across networks effortless and efficient. Say goodbye to the complexities of managing port forwarding settings as your network grows.

  3. Low Resource Consumption: Global SSH is designed to be lightweight and not resource-intensive, ensuring optimal performance even in poor Wi-Fi conditions.

  4. User-Friendly Interface: We have prioritized creating an intuitive and user-friendly experience with Global SSH. The platform offers a minimal learning curve, enabling users of all technical expertise levels to navigate and utilize it effectively.

  5. Seamless Mode Switching: Transitioning between server and client modes is a breeze with Global SSH. By issuing simple commands in the terminal, you can easily switch between being a server or a client:

    • Server Mode: $ globalssh server
    • Server Mode(different host name) $ globalssh server {hostname}
    • Client Mode: $ globalssh client
    • Client Mode(different host) $ globalssh client {hostname}
  6. No Port Forwarding Needed: Global SSH removes the requirement for port forwarding, simplifying the process of connecting hosts and clients across networks. Say goodbye to the complexities of managing port forwarding settings.

  7. Platform Agnostic: Global SSH's client mode is compatible with all platforms, including chips like 386 and ARM.

  8. Unix Compatibility: Global SSH's server mode works seamlessly on all Unix-based systems, ensuring wide compatibility across various platforms. Please note that server mode is not supported on Windows.

  9. Collaboration Feature: Global SSH enables server and client collaboration, allowing them to work together in a shared shell environment.

  10. Enhanced Security:

  • Global SSH provides robust security measures to safeguard your server and client connections.
  • Enjoy an additional layer of anonymity as Global SSH cannot be easily discovered or traced back to a specific location.
  • The Redis server used in Global SSH acts as a proxy, effectively concealing your server's IP address and making it significantly harder for potential attackers to target your system.
  • AES encryption is integrated into Global SSH, ensuring the confidentiality of data transmission between the server and client.
  • Global SSH's design ensures that no data is stored through the Redis server, minimizing the risk of an attack even if the Redis server is compromised.

Setup ๐Ÿ‘€๏ธ

Step 1: Install(requires golang)

1a. You can install and update the code with this command(recommended)

$ bash <( curl -s https://raw.githubusercontent.com/carghai/globalssh/main/install.sh)

this script attempts to add the code to path, it will also put a copy of the binary in your root folder

1b. You can also install via go install

$ go install github.com/carghai/globalssh@latest

1c. you can also git clone the repo and build it via this command

$ git clone https://github.com/carghai/globalssh --single-branch
$ cd globalssh
$ make init 
$ make deps
$ go build -o globalssh
  1. To verify this worked make sure to fully close you terminal app then try running. This should not return "command not found: globalssh"
$ globalssh
  1. If the last step failed you will need to run it like this, or add it to path manualy
$ ~/./globalssh
  1. You can also update whenever you want by doing
$ sudo globalssh update

Step 2: Redis Setup

  1. First go to here and setup your free redis cloud server(no credit card required)

  2. Next click these buttions

  3. Next click the database

  4. Now you should see the data required to use Global SSH ex: Public endpoint,Username,Password

  5. Now keep this window open

Final Step: Connecting Global SSH with Redis

  1. Now run global ssh on your computer, it should prompt you to put in your keys
  2. Next put in the keys from the last step
  3. When prompted pick database 0 (default)
  4. Finally in your "C:\" or next to the exe (windows) or your home directory(~) or next to the binary you should find redis_key.json.
  5. Find the redis_key.json and move the file to any computer you want running Global SSH
  6. While moving the file make sure it is in the your home directory(~) or next to the binary then run Global SSH
  7. Now run globalssh server on your server computer
  8. Finally run globalssh client on your client computer
  9. Make sure it does not say "unable to find redis key file" otherwise you did not put it in the right place. However you can just make a new on right there too.
  10. Enjoy Global SSH ๐Ÿ˜„
  11. Be sure to reinstall to update Global SSH
  12. To exit write $ client-exit

How Do You Use It?

  1. Run globalssh server on your host pc. It should say "Redis Connection Verfied And Working, Starting Global SSH!" and go into a into a shell. If there are no error messages you are now in globalssh. You can type in commands and other if connected will see it
  2. To connect to your server make sure you have the same redis_key.json in the ~ location and run globalssh client if you did everything right, you should see a neofetch command go off when you connect to your server. You can now type in commands, just note what every you type can be seen on the server computer.
  3. If you want to connect to other servers you can run globalssh client {server name}

How to use it for automation?

  1. globalssh client {server-name} {time-delay-for-output} {input}
  2. for example if I want to redeploy a project I can do this
  3. globalssh client test 20 ./redeploy.sh\n
  4. It gives the raw output of the shell
  5. You can even update your system and use sudo!
  $ globalssh client test 8 "sudo dnf update\n"
  $ globalssh client test 8 "mysudopassword\n"
  $ globalssh client test 8 "y\n\n"

Limitations ๐Ÿ˜•

  1. This project is very new and it still in early alpha so please report any bugs!
  2. command like zellji with extremely heavy stdout are a bit glitchy, however this the only known command that suffers this bug.
  3. There is bit more delay on compared to SSH

Contributing/Future Plans

  1. I have huge hope for this project an will continue to make this the best as I can
  2. I'm currently working on making less latancy and improve commands that send massive amounts of stdout (zellji) run better
  3. If you have any changes please be descriptive on what is does then I will check it then merge it.

1.2k lines of code

globalssh's People

Contributors

dependabot[bot] avatar

Stargazers

Kevin avatar  avatar Felipe Menegazzi avatar Xiaofan Hu avatar GL4D1AT0R avatar  avatar Anthony Zhai avatar Edwin Walela avatar Ian Smith avatar  avatar Daniel Theophanes avatar  avatar Aliaksandr Stelmachonak avatar Eddie Tang avatar Ekam avatar

Watchers

Ekam avatar

Forkers

egida

globalssh's Issues

Install with go not working due to wrong module declaration

problem

Install using 1b method is not working

reproduction

$ go version
go version go1.21.1 linux/amd64

$ go install github.com/carghai/globalssh@latest
go: github.com/carghai/globalssh@latest: version constraints conflict:
        github.com/carghai/[email protected]: parsing go.mod:
        module declares its path as: globalssh
                but was required as: github.com/carghai/globalssh

additional info

I think binary release (using goreleaser) is a better option, which does not require go.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.