{"id":13453314,"url":"https://github.com/aluzzardi/wssh","last_synced_at":"2025-05-15T17:07:24.596Z","repository":{"id":4058197,"uuid":"5161494","full_name":"aluzzardi/wssh","owner":"aluzzardi","description":"SSH to WebSockets Bridge","archived":false,"fork":false,"pushed_at":"2019-02-12T13:08:18.000Z","size":217,"stargazers_count":1371,"open_issues_count":26,"forks_count":271,"subscribers_count":86,"default_branch":"master","last_synced_at":"2025-05-08T05:41:35.389Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aluzzardi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-07-24T05:26:41.000Z","updated_at":"2025-04-25T01:08:38.000Z","dependencies_parsed_at":"2022-08-02T10:35:32.239Z","dependency_job_id":null,"html_url":"https://github.com/aluzzardi/wssh","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aluzzardi%2Fwssh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aluzzardi%2Fwssh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aluzzardi%2Fwssh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aluzzardi%2Fwssh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aluzzardi","download_url":"https://codeload.github.com/aluzzardi/wssh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254384988,"owners_count":22062422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T08:00:37.931Z","updated_at":"2025-05-15T17:07:19.587Z","avatar_url":"https://github.com/aluzzardi.png","language":"JavaScript","readme":"wssh\n====\n\nwssh is a SSH to WebSockets Bridge that lets you invoke a remote shell using nothing but HTTP.\n\nThe client connecting to wssh doesn't need to speak the SSH protocol - rather, the SSH connection is terminated\nat the bridge level and the pty is wrapper through a thin layer of JSON and sent back to the client.\n\nThis means you can implement a WSSH client in just a few lines of code, even for a web browser.\n\nUsage\n-----\n\nEven though `wssh` primary purpose is to be used as a library in your applications,\nit ships with two command line tools: `wsshd` (the server) and `wssh` (the client).\n\n```\n$ wsshd \nwsshd/0.1.0 running on 0.0.0.0:5000\n```\n\n```\n$ wssh aluzzardi@mba -p\nPassword: \nLast login: Mon Jul 23 23:20:27 2012 from localhost\naluzzardi@mba:~$ \n```\n\nWeb Interface\n-------------\n\nwsshd provides a web interface giving you access to a Javascript client\n\n![wssh: shell](https://github.com/aluzzardi/wssh/raw/master/misc/shell_screenshot.png)\n\n![wssh: vim](https://github.com/aluzzardi/wssh/raw/master/misc/vim_screenshot.png)\n\nCreating your own server\n------------------------\n\n`wsshd` is just a simple server implementation to demonstrate the wssh library.\n\nYou can actually integrate wssh into your own Python web application in order to provide terminal access.\nFor instance, you may want to provide shell access to clients authenticated through OAuth to a special user account.\nThe client doesn't need to know where the SSH server is located nor its credentials.\n\nAn example using the Flask framework is provided in `examples/flask_server.py`\n\nCreating your own client\n------------------------\n\nBeside the command line tool, `wssh` comes bundled with both a Python and a Javascript client library for the wssh bridge.\n\nThere are examples available in the `examples/` directory for both languages.\n\nYou can write your own library in another language in just a few lines of code.","funding_links":[],"categories":["JavaScript","Apps"],"sub_categories":["Network"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faluzzardi%2Fwssh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faluzzardi%2Fwssh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faluzzardi%2Fwssh/lists"}