|
|
|
@ -7,11 +7,12 @@ Introduction
|
|
|
|
|
------------ |
|
|
|
|
|
|
|
|
|
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. |
|
|
|
|
ssh servers. It is written in Python, base on tornado, paramiko and |
|
|
|
|
xterm.js. |
|
|
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
|
|
+---------+ http +--------+ ssh +-----------+ |
|
|
|
|
+---------+ http +--------+ ssh +-----------+ |
|
|
|
|
| browser | <==========> | webssh | <=======> | ssh server| |
|
|
|
|
+---------+ websocket +--------+ ssh +-----------+ |
|
|
|
|
|
|
|
|
@ -31,24 +32,39 @@ Preview
|
|
|
|
|
|
|
|
|
|
|Login| |Terminal| |
|
|
|
|
|
|
|
|
|
Requirement |
|
|
|
|
~~~~~~~~~~~ |
|
|
|
|
Requirements |
|
|
|
|
~~~~~~~~~~~~ |
|
|
|
|
|
|
|
|
|
- Python 2.7/3.4+ |
|
|
|
|
|
|
|
|
|
Instructions |
|
|
|
|
~~~~~~~~~~~~ |
|
|
|
|
Quickstart |
|
|
|
|
~~~~~~~~~~ |
|
|
|
|
|
|
|
|
|
1. Install this app ``pip install webssh`` |
|
|
|
|
2. Start a webserver ``wssh`` |
|
|
|
|
3. Open your browser, navigate to ``127.0.0.1:8888`` |
|
|
|
|
4. Input your data, submit the form. |
|
|
|
|
|
|
|
|
|
Installation options |
|
|
|
|
~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
|
|
|
|
Install from the pypi repository, may not the latest version |
|
|
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
|
|
pip install webssh |
|
|
|
|
wssh |
|
|
|
|
|
|
|
|
|
Options |
|
|
|
|
~~~~~~~ |
|
|
|
|
Install from the github repository, always the latest version |
|
|
|
|
|
|
|
|
|
:: |
|
|
|
|
|
|
|
|
|
pip install https://github.com/huashengdun/webssh/archive/master.zip |
|
|
|
|
|
|
|
|
|
Server options |
|
|
|
|
~~~~~~~~~~~~~~ |
|
|
|
|
|
|
|
|
|
.. code:: bash |
|
|
|
|
|
|
|
|
|
# listen address and port |
|
|
|
|
wssh --address='0.0.0.0' --port=8000 |
|
|
|
|
|
|
|
|
@ -64,6 +80,36 @@ Options
|
|
|
|
|
# more options |
|
|
|
|
wssh --help |
|
|
|
|
|
|
|
|
|
Use console |
|
|
|
|
~~~~~~~~~~~ |
|
|
|
|
|
|
|
|
|
.. code:: javascript |
|
|
|
|
|
|
|
|
|
// set a new encoding for client to use |
|
|
|
|
wssh.set_encoding(encoding); |
|
|
|
|
|
|
|
|
|
// reset encoding to use the default one |
|
|
|
|
wssh.reset_encoding(); |
|
|
|
|
|
|
|
|
|
// connect to your ssh server |
|
|
|
|
wssh.connect(hostname, port, username, password, privatekey); |
|
|
|
|
|
|
|
|
|
// without argument, wssh will use the form data to connect |
|
|
|
|
wssh.connect(); |
|
|
|
|
|
|
|
|
|
// define a mapping object |
|
|
|
|
var opts = { |
|
|
|
|
hostname: 'hostname', |
|
|
|
|
port: 'port', |
|
|
|
|
username: 'username', |
|
|
|
|
password: 'password', |
|
|
|
|
privatekey: 'the private key text' |
|
|
|
|
}; |
|
|
|
|
wssh.connect(opts); |
|
|
|
|
|
|
|
|
|
// send a command to the server |
|
|
|
|
wssh.send('ls -l'); |
|
|
|
|
|
|
|
|
|
Tests |
|
|
|
|
~~~~~ |
|
|
|
|
|
|
|
|
@ -82,7 +128,7 @@ Use pytest to run all tests
|
|
|
|
|
An example of config for running this app behind an Nginx server |
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
|
|
|
|
:: |
|
|
|
|
.. code:: nginx |
|
|
|
|
|
|
|
|
|
location / { |
|
|
|
|
proxy_pass http://127.0.0.1:8888; |
|
|
|
|