GNU/Linux >> Linux の 問題 >  >> Linux

xterm.js を使用して Web ベースのターミナルを作成し、ローカル ネットワーク上のシステムに ssh する方法

少し調査した後、ここに作業コードがあります。

ライブラリ:

1) https://socket.io/

このライブラリは、クライアントからサーバーへのパッケージの送信に使用されます。

2) https://github.com/staltz/xstream

このライブラリはターミナル ビューに使用されます。

3) https://github.com/mscdex/ssh2

これは、リモート サーバーとの接続を確立するために使用されるメイン ライブラリです。

ステップ 1:Library 3 をプロジェクト フォルダーにインストールする

ステップ 2:ノード側から開始して server.js を作成します ソケットを開くためのファイル

ステップ 3:クライアント ソケットをノード サーバーに接続します (両方ともローカル マシンにあります)

トリッキーなロジックは、ソケットと ssh2 の使用方法です。

ソケットの発行時に、ssh2 ライブラリを使用して SSH コマンドをトリガーする必要があります。 (サーバーからの) ssh2 ライブラリの応答で、クライアントにソケット パッケージを送信する必要があります。以上です。

例を見つけるには、ここをクリックしてください。

この例には、次のファイルとフォルダがあります:

Type    Name
------------
FILE    server.js
FILE    package.json
FOLDER  src
FOLDER  xtream

まず、server.js でサーバー IP、ユーザーとパスワード、または証明書ファイルを構成し、node server.js を実行する必要があります。 .

追伸:npm install を実行することを忘れないでください

ご不明な点がございましたら、お気軽にお問い合わせください。


後でいくつかの調査を行った後、このサービスに出くわしました:https://tmate.io/ これは完璧に仕事をします.ただし、tmate の Web ベースのターミナルが必要な場合は、ssh サーバーをリバース プロキシとして使用する必要がありますが、これは理想的には快適ではありませんでした。ただし、独自のリバース プロキシ サーバーをホストするために使用できる tmate-server を提供しますが、Web UI はありません。ただし、Web 上の ssh 経由で NAT の背後にあるクライアントにアクセスする必要があるシステムを構築するには、以下の手順に従います。

  • クラウド マシンに tmate-server をインストールして構成する
  • クライアント側に tmate をインストールし、クラウド マシンに接続するように構成する
  • tmate-server に接続し、それぞれのクライアントにコマンドを渡す xterm.js (WebSocket ベースの通信のため簡単) を使用して nodejs アプリケーションを作成します。 (Linux コマンドを渡すため、このアプリケーションを公開する際のセキュリティ上の問題に注意してください)。
  • ユースケースによっては、クライアント側で tmate クライアントの周りに小さなラッパーが必要になる場合があります。これにより、自動的に、または何らかの UI/手動アクションを介して開始/停止できます。

注:クライアント側にも小さなラッパーを作成して、開始/停止し、必要な情報を API サーバー (nodejs で作成) に渡します。このラッパーは、ブラウザをそれぞれのクライアント セッションに接続する別の API に情報を渡します。 .このアプリケーションを作成したので、端末で実行できるコマンドの制限だけでなく、認証も含まれていました。たくさんカスタマイズできます。


Linux
  1. アクセスできないネットワーク上にあるサービス/サーバーにアクセスする方法(SSHトンネルを使用)

  2. SSHPass:パスワードなしで(非対話的に)スクリプトを使用してサーバーにSSHで接続する方法

  3. [Linux]:Shellinabox –SSHターミナルへのWebベースのアクセス

  1. 別のサーバーを使用してサーバーにSSH接続する方法は??

  2. LinuxサーバーでSSHを使用してPlesk管理者パスワードをリセットするにはどうすればよいですか?

  3. SSHのコマンドを使用してMySQLデータベースを復元するにはどうすればよいですか?

  1. SSHを使用してサーバーからファイルをダウンロードするには?

  2. Linux サーバーから Windows クライアントに SCP する方法

  3. OpenVPN経由でNordVPNサーバーを使用してVPNサーバーに接続した後、ターミナルへのSSHを許可する方法は?