LinuxサーバーにWebSSHを構築し、ブラウザからSSH接続できるようにします。
GitHub - huashengdun/webssh: :seedling: Web based ssh client
:seedling: Web based ssh client. Contribute to huashengdun/webssh development by creating an account on GitHub.
ブラウザからLinuxサーバー上に構築したWebSSHにアクセスし、WebSSHから指定したマシンへSSH接続できるようになります。
WebSSHのインストール
まずはWebSSHをインストールします。
#pip install webssh
WebSSHはPythonパッケージのため、pipでインストールします。
すべてのユーザーで使えるようにスーパーユーザーでインストールしましょう。
WebSSHを起動する
wsshを実行します。
#wssh --port=1234
ポートやアドレスの指定も可能です。
#wssh --help
Usage: /home/th/.local/bin/wssh [OPTIONS]
Options:
--help show this help information
/usr/local/lib/python3.9/dist-packages/tornado/log.py options:
--log-file-max-size max size of log files before rollover
(default 100000000)
--log-file-num-backups number of log files to keep (default 10)
--log-file-prefix=PATH Path prefix for log files. Note that if you
are running multiple tornado processes,
log_file_prefix must be different for each
of them (e.g. include the port number)
--log-rotate-interval The interval value of timed rotating
(default 1)
--log-rotate-mode The mode of rotating files(time or size)
(default size)
--log-rotate-when specify the type of TimedRotatingFileHandler
interval other options:('S', 'M', 'H', 'D',
'W0'-'W6') (default midnight)
--log-to-stderr Send log output to stderr (colorized if
possible). By default use stderr if
--log_file_prefix is not set and no other
logging is configured.
--logging=debug|info|warning|error|none
Set the Python log level. If 'none', tornado
won't touch the logging configuration.
(default info)
/usr/local/lib/python3.9/dist-packages/webssh/settings.py options:
--address Listen address
--certfile SSL certificate file
--debug Debug mode (default False)
--delay The delay to call recycle_worker (default 3)
--encoding The default character encoding of ssh
servers. Example: --encoding='utf-8' to
solve the problem with some switches&routers
--fbidhttp Forbid public plain http incoming requests
(default True)
--font custom font filename
--hostfile User defined host keys file
--keyfile SSL private key file
--maxconn Maximum live connections (ssh sessions) per
client (default 20)
--origin Origin policy, 'same': same origin policy,
matches host name and port number;
'primary': primary domain policy, matches
primary domain only; '<domains>': custom
domains policy, matches any domain in the
<domains> list separated by comma; '*':
wildcard policy, matches any domain, allowed
in debug mode only. (default same)
--policy Missing host key policy,
reject|autoadd|warning (default warning)
--port Listen port (default 8888)
--redirect Redirecting http to https (default True)
--ssladdress SSL listen address
--sslport SSL listen port (default 4433)
--syshostfile System wide host keys file
--tdstream Trusted downstream, separated by comma
--timeout SSH connection timeout (default 3)
--version Show version information
--wpintvl Websocket ping interval (default 0)
--xheaders Support xheaders (default True)
--xsrf CSRF protection (default True)
(オプション)Nginxでリバースプロキシする
Nginxでリバースプロキシしたいときは、以下のコンフィグを作成します。
location /webssh/ {
proxy_pass http://localhost:1234/;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_read_timeout 300;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
}
proxy_http_version 1.1;
が抜けていると、SSH接続に失敗しますので注意です。
SSHしてみよう!
WebSSHにアクセスします。
接続先のパラメータを入力してConnectをクリックすると、
接続できました!
コメント