
リモートコンピュータ(好ましくはSSH経由)に接続し、そこからコマンドを抽出したいと思います。
正確には、リモートコンピュータをローカルコンピュータに接続して対話型コンソールを使用し、コマンドを送信して出力を確認したいと思います。
機能的には、Windows Remote Assistantまたは他の名前と呼ばれるものと似ています。
私はGUIを使用してHTTPサーバーを実装し、要求に応じて永続的な接続を維持し、入力したすべての行をGUIに送信し、相手が送信したすべてを出力として受け取ることを想像できます。 HTTPヘッダーだけを処理するだけです。しかし、これはあまりエレガントではありません。
既製のソリューションがありますか?または、nc
一部のツールを使用してTTYをリスニングポートに接続できますか?
答え1
実行する場合:
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
答え2
伝統的なnetcatを使用してください。
仕える人:
$ nc.traditional -lvp 1234 -e /bin/sh
顧客:
$ nc -nv <ip> 1234
SSH 経由でポートを転送することもできます。
答え3
リモートコンピュータを対話型コンソールがあるローカルコンピュータに接続したいと思います。
ロケールコンピュータにリスナーを作成します。
socat file:`tty`,raw,echo=0 tcp-listen:PORT
リモートコンピュータで次のコマンドを入力します。
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:YOUR_IP_ADDRESSE:PORT