理想的にはSSH経由でリモートマシンに接続し、そこからコマンドをプルしたいと思います。
正確には、リモートマシンをローカルマシンに接続し、インタラクティブコンソールを使用してコマンドを送信し、出力を確認したいと思います。
機能的には、Windows RemoteAssistantまたはその名前に似ています。
GUIを備えたHTTPサーバーを実装すると想像できます。要求に応じて、接続を永続的に維持し、入力したすべての行をGUIに送信します。反対側が送信するすべてのものを出力として受信します。 HTTPヘッダーだけを処理する必要があります。しかし、それはあまりエレガントではありません。
そのような既製の解決策はありますか?または、おそらくnc
またはTTYをリスニングポートに接続するツールを使用していますか?
実行する場合:
socat "unix-listen:$HOME/.Shell-access,mode=600,fork" \
"exec:$Shell,pty,stderr,setsid,ctty"
これにより、たとえば次のことが可能になります。
socat -,raw,echo=0 "unix:$HOME/.Shell-access"
ローカルで、そのシェルに接続して対話します。
次に、次のコマンドを使用して、ssh経由でリモートポート転送できます。
ssh -R "/path/to/socket/on/Host:$HOME/.Shell-access" user@Host
(opensshの比較的新しいバージョン(クライアントとサーバーの両方)を想定しています)。
そして、user
のHost
は、それを行うことでそのシェルと対話できます。
socat -,raw,echo=0 "unix:/path/to/socket/on/Host"
$Shell
を実行する代わりに、screen -xRS some-screen-session
を実行して特定のscreen
セッションをアタッチし、複数の人が同じ画面セッションを表示できるようにすることができます。
従来のnetcatを使用。
サーバ:
$ nc.traditional -lvp 1234 -e /bin/sh
クライアント:
$ nc -nv <ip> 1234
Ssh経由でポートを転送することもできます。
リモートマシンをローカルマシンに接続させたいのですが、そこではインタラクティブコンソールがあります
ロケールマシンでリッスンを作成します。
socat file:`tty`,raw,echo=0 tcp-listen:PORT
リモートマシンで次のコマンドを入力します。
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:YOUR_IP_ADDRESSE:PORT