mirror of https://github.com/huashengdun/webssh
Added README.rst
parent
53762f6035
commit
7e238b6ffb
|
@ -19,8 +19,7 @@ A simple web application to be used as an ssh client to connect to your ssh serv
|
||||||
|
|
||||||
### Instructions
|
### Instructions
|
||||||
```
|
```
|
||||||
git clone https://github.com/huashengdun/webssh.git
|
pip install webssh
|
||||||
pip install ./webssh/
|
|
||||||
wssh
|
wssh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
14
setup.py
14
setup.py
|
@ -3,17 +3,8 @@ from setuptools import setup
|
||||||
from webssh._version import __version__ as version
|
from webssh._version import __version__ as version
|
||||||
|
|
||||||
|
|
||||||
starts = [u'### Preview', u'![Login]', u'![Terminal]']
|
with codecs.open('README.rst', encoding='utf-8') as f:
|
||||||
|
long_description = f.read()
|
||||||
|
|
||||||
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))
|
|
||||||
|
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
|
@ -21,7 +12,6 @@ setup(
|
||||||
version=version,
|
version=version,
|
||||||
description='Web based ssh client',
|
description='Web based ssh client',
|
||||||
long_description=long_description,
|
long_description=long_description,
|
||||||
long_description_content_type='text/markdown',
|
|
||||||
author='Shengdun Hua',
|
author='Shengdun Hua',
|
||||||
author_email='webmaster0115@gmail.com',
|
author_email='webmaster0115@gmail.com',
|
||||||
url='https://github.com/huashengdun/webssh',
|
url='https://github.com/huashengdun/webssh',
|
||||||
|
|
Loading…
Reference in New Issue