web-dev-qa-db-ja.com

SSH転送TCPからUNIXソケットへ)時のエラー

sshを使用してローカルポートのTCP接続をリモートサーバーのUnixソケットに転送しようとしていますが、エラーが発生し続けます。

まず、リモートサーバーでncをリッスンさせることから始めました。

remote$ nc -lU /tmp/socket

次に、SSHを使用してポートフォワードを設定します。

local$ ssh -L127.0.0.1:5000:/tmp/socket -vv #remote Host here#

SSHとポートフォワーディングは機能しているようです。

debug1: Local connections to 127.0.0.1:5000 forwarded to remote address /tmp/socket:-2
debug1: Local forwarding listening on 127.0.0.1 port 5000.
debug1: channel 0: new [port listener]
debug1: channel 1: new [client-session]

次に、ブラウザで127.0.0.1:5000にアクセスしようとすると、ターミナルに次のエラーメッセージが表示されます。

debug1: channel 2: new [[email protected]]
channel 2: open failed: administratively prohibited: open failed
debug1: channel 2: free: [email protected]: listening port 5000 for /tmp/socket port -2, connect from 127.0.0.1 port 41372 to 127.0.0.1 port 5000, nchannels 3

それは何度も発生し、接続は失敗します。

どうすればこれを設定できますか? (リモートサーバーにrootを必要としない、または新しいソフトウェアをローカルにインストールする必要のないソリューションをお勧めします。)

2
nc -klU /tmp/socket

それ以外の場合、ncは単一の接続を受け入れて処理してから終了します。 -kは、着信接続を処理するための新しいプロセスをncフォークオフし、accept()ループを続行します。

sshは、「管理上禁止されている」過負荷のように見えます。ソケットは存在せず、socket-exists-but-nothing-is-listeningです。

1