webssh

Web based ssh client https://github.com/huashengdun/webssh webssh.huashengdun.org/
git clone http://git.hanabi.in/repos/webssh.git
Log | Files | Refs | README | LICENSE

commit 7e238b6ffb378d26a1e7c4a74d96a4eff71bf5cb
parent 53762f6035bdb537e2ef18fa45931c0ddad3ef40
Author: Sheng <webmaster0115@gmail.com>
Date:   Fri, 27 Apr 2018 01:11:16 +0800

Added README.rst

Diffstat:
MREADME.md | 3+--
AREADME.rst | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msetup.py | 14++------------
3 files changed, 93 insertions(+), 14 deletions(-)

diff --git a/README.md b/README.md @@ -19,8 +19,7 @@ A simple web application to be used as an ssh client to connect to your ssh serv ### Instructions ``` -git clone https://github.com/huashengdun/webssh.git -pip install ./webssh/ +pip install webssh wssh ``` diff --git a/README.rst b/README.rst @@ -0,0 +1,90 @@ +WebSSH +------ + +|Build Status| |codecov| |license| + +A simple web application to be used as an ssh client to connect to your +ssh servers. It is written in Python, base on tornado and paramiko. + +Preview +~~~~~~~ + +|Login| |Terminal| + +Features +~~~~~~~~ + +- SSH password authentication supported, including empty password. +- SSH public-key authentication supported, including DSA RSA ECDSA + Ed25519 keys. +- Encrypted keys supported. +- Fullscreen terminal supported. +- Terminal window resizable. +- Compatible with Python 2.7-3.6. + +Instructions +~~~~~~~~~~~~ + +:: + + pip install webssh + wssh + +Options +~~~~~~~ + +:: + + # configure listen address and port + wssh --address='0.0.0.0' --port=8000 + + # configure missing host key policy + wssh --policy=reject + + # configure logging level + wssh --logging=debug + + # log to file + wssh --log-file-prefix=main.log + + # more options + wssh --help + +Nginx config example for running this app behind an nginx server +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + location / { + proxy_pass http://127.0.0.1:8888; + proxy_http_version 1.1; + proxy_read_timeout 300; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Real-PORT $remote_port; + } + +Tips +~~~~ + +- Try to use Nginx as a front web server (see config example above) and + enable SSL, this will prevent your ssh credentials from being + uncovered. Also afterwards the communication between your browser and + the web server will be encrypted as they use secured websockets. +- Try to use reject policy as the missing host key policy along with + your verified known\_hosts, this will prevent man-in-the-middle + attacks. The idea is that it checks the system host keys + file("~/.ssh/known\_hosts") and the application host keys + file("./known\_hosts") in order, if the ssh server's hostname is not + found or the key is not matched, the connection will be aborted. + +.. |Build Status| image:: https://travis-ci.org/huashengdun/webssh.svg?branch=master + :target: https://travis-ci.org/huashengdun/webssh +.. |codecov| image:: https://codecov.io/gh/huashengdun/webssh/branch/master/graph/badge.svg + :target: https://codecov.io/gh/huashengdun/webssh +.. |license| image:: https://img.shields.io/github/license/mashape/apistatus.svg +.. |Login| image:: https://github.com/huashengdun/webssh/raw/master/preview/login.png +.. |Terminal| image:: https://github.com/huashengdun/webssh/raw/master/preview/terminal.png + diff --git a/setup.py b/setup.py @@ -3,17 +3,8 @@ from setuptools import setup from webssh._version import __version__ as version -starts = [u'### Preview', u'![Login]', u'![Terminal]'] - - -def starts_with(line): - for start in starts: - if line.startswith(start): - return True - - -with codecs.open('README.md', encoding='utf-8') as f: - long_description = ''.join(line for line in f if not starts_with(line)) +with codecs.open('README.rst', encoding='utf-8') as f: + long_description = f.read() setup( @@ -21,7 +12,6 @@ setup( version=version, description='Web based ssh client', long_description=long_description, - long_description_content_type='text/markdown', author='Shengdun Hua', author_email='webmaster0115@gmail.com', url='https://github.com/huashengdun/webssh',