Git Product home page Git Product logo

ssheasy's Introduction

ssheasy

Source repositorty of the online ssh, sftp client ssheasy.com

Building, running locally

docker-compose up

This will compile the wasm ssh, sftp client, the proxy component that proxies tcp connections for the client running in the browser through websocket and sets up nginx server serving the web frontend. Additionaly prometheus and grafana is set up as well to monitor the connections proxied. An sshd is also started in a container for testing.

Testing

For testing docker-compose sets up an sshd in a separate container. After starting up the stack with docker-compose up open http://localhost:8080 in your browser and use the host testssh with user root and password root.

Project structure

  • nginx: web server config, Dockerfile for building the wasm ssh/sftp client
  • proxy: golang proxy service for tunneling tcp connections through websocket
  • web: source of the ssh, sftp wasm client, and the httml for the frontend

Filemanager UI

The filemanager is based on forked version) of angular-filemanager. The fork replaces the backend api calls with calls to the wasm sftp client. The fork has to be built separately and copied to the web/html/node_modules directory.

ssheasy's People

Contributors

ax-jmckenzie avatar hullarb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ssheasy's Issues

is IPv6 supported ?

hi,very nice tool,
work fine with IPv4 host but throw an error when I try to connect IPv6 host

error:
cannot connect to host: dial tcp [2a02:8429:614a:6901:ba27:ebff:xxxxx:xxxxx]:22: connect: cannot assign requested address

Non-issue

Apologies - thought I found an issue, then discovered it was an issue between the keyboard and screen. Don't seem to be able to delete this though.

License

First of all, your product is really useful, can you please make the licensing clear as I might like to use this in one of my personal project

Use ssheasy as vpn

Hi, my ISP has blocked my server so i can't connect via SSH using Putty
But when i try ssh through ssheasy i have no problem conncting

I am wondering that can i use ssheasy to connect to my server as a vpn(ssh tunnel)

Compression

Could you please add zlib compression, like with ssh -C? Thanks!

license?

project is missing a LICENSE file, and therefore i cannot use this code

Can't run on Cloudflare Workers

Hello,

Our team were interested in running an SSH client on Cloudflare Workers, and ssheasy seems to be a great fit. However, we hit a snag of not being able to connect to the proxy server.

After debugging, it turned out that the implementation of github.com/hullarb/dom/net/ws/wsconn_js uses new Function() to create the WebSocket instance, which is not allowed in such serverless environment.

Since github.com/hullarb/dom has no Issues reporting, I figure to report here, since it's related to ssheasy anyway.

Is there a way we can avoid using new Function()?

Go program exits after connection.

  1. How to reproduce: Use this info to sign in.
  2. console.log: (DevTool, MS Edge 96.0.1054.62)
wasm_exec.js:51 main is running
wasm_exec.js:51 2022/01/05 18:41:33 requesting 24x104 terminal
wasm_exec.js:51 panic: runtime error: invalid memory address or nil pointer dereference
wasm_exec.js:51 [signal 0xb code=0x0 addr=0x0 pc=0x0]
wasm_exec.js:51 
wasm_exec.js:51 goroutine 7 [running]:
wasm_exec.js:51 github.com/pkg/sftp.(*Client).RealPath(0x0, {0x52f86, 0x1})
wasm_exec.js:51 	/go/pkg/mod/github.com/pkg/[email protected]/client.go:815 +0x2
wasm_exec.js:51 github.com/pkg/sftp.(*Client).Getwd(...)
wasm_exec.js:51 	/go/pkg/mod/github.com/pkg/[email protected]/client.go:842
wasm_exec.js:51 main.getwd()
wasm_exec.js:51 	/go/src/web/browser.go:133 +0x4
wasm_exec.js:51 main.main.func1.1({0x482070, 0x7, 0x7})
wasm_exec.js:51 	/go/src/web/main.go:140 +0x106
wasm_exec.js:51 created by main.main.func1
wasm_exec.js:51 	/go/src/web/main.go:29 +0x2
wasm_exec.js:151 
        
       exit code: 2
exit @ wasm_exec.js:151

  1. description: After trying to connect rlgallery.org, the client unexpectedly exited.
    It showed me the initial screen of rlgallery, but I can not type anything.

SSH Key Support

My private key is unencrypted. It is loaded automatically in a MacOS zsh shell via this entry in .zshrc:

ssh-add -q ~/.ssh/id_rsa

Here is my ssh config sample:


## Global host options
Host *
	ServerAliveInterval 120
	ServerAliveCountMax 2
	Compression yes
	MACS  hmac-sha2-512,hmac-sha1
	ForwardAgent yes
	StrictHostKeyChecking no
	HostkeyAlgorithms +ssh-rsa,ssh-dss
	KexAlgorithms +diffie-hellman-group1-sha1
	PubkeyAcceptedKeyTypes +ssh-rsa,ssh-dss
	StrictHostKeyChecking no

Host    ud11                 
	Hostname 10.122.85.22 
		ForwardAgent yes
		IdentityFile ~/.ssh/id_rsa
		User justin
		HostkeyAlgorithms +ssh-rsa,ssh-dss
		KexAlgorithms +diffie-hellman-group1-sha1
		PubkeyAcceptedKeyTypes +ssh-rsa,ssh-dss
		StrictHostKeyChecking no

This host is on the office LAN and is reachable via a VPN and I am it works via command line SSH: OpenSSH_9.0p1, LibreSSL 3.3.6

I get this error: cannot connect to host: dial tcp 10.122.85.22 :22: i/o timeout

Could you add a license to the repo?

Hi there, I'm interested in playing with this code and possibly contributing back some improvements... but I'm not sure how it works when there's no license file in the repository.

Could you add a license file? I'm a big fan of the MIT license encase you needed a suggestion :)

Thanks!

Send SSH Command programmatic from browser

Hi,
SSHEasy now wasm ssh client and run entirely in browser, so can I using ssheasy to send an ssh command programmatically from my browser to my local ssh server in a local network where I open ssheasy.com in same local network ?

Thanks,

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.