ブラウザからSSH接続できるようにするには?(WebSSH)

Linux

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をクリックすると、

接続できました!

コメント

タイトルとURLをコピーしました