少し調査した後、ここに作業コードがあります。
ライブラリ:
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 に情報を渡します。 .このアプリケーションを作成したので、端末で実行できるコマンドの制限だけでなく、認証も含まれていました。たくさんカスタマイズできます。