私のプロジェクト仕様をまとめます。同じLANにWindowsサーバーと複数のDebianクライアントがあり、Debianシステムにはxウィンドウシステムがないため、コマンドラインを使用する必要があります。システムの起動時にQTアプリケーションを実行するため、ユーザーは他の項目を表示する前にGUIとのみ対話します。
私のプロジェクトの要件に応じて、システム管理者はいつでもエンドユーザーがDebianコンピュータで何をしているのかを確認できるようにする必要があります。したがって、エンドユーザーはいつでも画面を表示できるはずです。彼はこれを行うためにWindowsシステムを使用します。それで、Debian画面をWindowsサーバーと共有することが可能かどうか、そしてその内容が何であるか疑問に思います。
これを行うには、DebianコンピュータにVNCサーバーを設定する必要がありますか?別の方法がありますか?
答え1
クライアント側でのみ端末を使用している場合(クライアントホストでどの種類のxserverも実行しないと言われました)、これを達成するために提案する方法は次のとおりです。実際には、リモートホストでターミナルセッションを監視する方法を示す最小限ですが、簡単に拡張可能な例です。私はこれができる特別なソフトウェアを知りません。おそらくこれをよりエレガントにする方法があるでしょうので、あまり期待しないでください。
rootsh
私の最初の提案はクライアント側にインストールすることです。
これは、すべてのエコーされたキー入力とターミナル出力をファイルおよび/またはシステムログに記録するシェルの周りのラッパーです。ゲンシーウェブサイト]
残念ながら、Debianリポジトリにはこれが含まれていないため、独自のバイナリを作成する必要があります。 rootshには素晴らしい依存関係がないので、実装するのは簡単です。また、socat
双方向データ転送のためのツールが必要です。
rootsh
のように電話すると
./rootsh -i -f logfile
新しいログインシェルは、そのシェルからターミナルにエコーされるか、サブプロセスに書き込まれるものlogfile
(元のttyで使用されている特殊文字と共に)まですべてを開始します。
これで、次のコマンドを使用してクライアントからTCPソケットを作成できます。
socat OPEN:logfile,ioreeof TCP-LISTEN:22222,fork
ここから管理者ホストに関する情報を読むことができます。例えば
socat TCP:clientdomain:22222 STDOUT
またはnetcat
ieを使用してくださいtelnet
(socatのWindowsバイナリを使用できます)。
ノード間のデータフローをより安全に保つために暗号化するように指示するsocat
こともできますOPENSSL
。記事でこれの良い説明を見つけることができます。SSLを使用した2つのSocatインスタンス間のトラフィック保護。
私のアプローチにいくつかの欠陥があることは認めていますが、特別なツールなしで何ができるかを説明するだけで十分です。