Skip to content

qiuhaotc/WebSSH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebSSH

English | 中文

WebSSH allows you to SSH to your remote host anytime, anywhere.

Demonstrate Page

Check https://webssh.azurewebsites.net, you can use any login name and password to logged in.

Usage

Login

Input the user name and password and captcha to login, user name and password configured in appsettings.json

Login

Management Connection

Mangement Connection

Connected To Server, Running Command

Press the Connect button, connect to the remote server, then run whatever command you want.

Go to management page, will list all available connected servers.

Features:

  1. Multi lines command
  2. Recall command, in single line mode, press arrow up and down can switch command from history
  3. Press "ctrl + c" can run command "^C", support "ctrl + [a-z]"

Connected & Running Command

Run & Recall Command

Real-time (SignalR) Enhancements

From the latest version, WebSSH replaces periodic HTTP polling with ASP.NET Core SignalR for a truly real-time terminal experience:

Area Before Now (SignalR)
Output refresh 1s / 100ms adaptive polling Push as soon as data arrives
Bandwidth Repeated empty responses Only actual output payloads
Command send HTTP GET endpoint Bi-directional hub method RunCommand
Initial backlog Multiple fetches Single join flush + streaming
Reconnect Full page reliance Automatic hub reconnect with status messages

Key benefits:

  1. Lower latency for interactive workflows (vim, tail -f, etc.).
  2. Reduced server & network overhead – no useless polling cycles.
  3. Better UX with connection state (Connected / Reconnecting / Disconnected).
  4. Extensible channel for future features (file upload, terminal resize, heartbeat).

Technical notes:

  • Hub path: /shellHub
  • Group isolation: each browser session + shell GUID => SignalR group
  • Still keeps an output queue for initial backlog replay on (re)join
  • Automatic reconnect enabled; transient drops will not lose buffered output
  • Legacy endpoints (GetShellOutput, IsConnected, RunShellCommand) have been removed after migration

Planned (roadmap ideas):

  • Terminal resizing sync (cols/rows)
  • Structured output channels (stdout/stderr separation)
  • Optional rate limiting / flood protection
  • Audit log of executed commands
  • Secure copy (SCP / SFTP) integration

Deployment Via Docker

Running your server at port 8070, config the password "your_password" to your own.

docker pull qiuhaotc/webssh
docker run -d --name webssh -p 8070:8080 -e ShellConfiguration__Users__0__Password="your_password" --restart=always qiuhaotc/webssh

Misc

Status Value
Stars Stars
Forks Forks
License License
Issues Issues
Docker Pulls Downloads
Release Downloads Downloads

About

WebSSH allows you to SSH to your remote host anytime, anywhere.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •