web-dev-qa-db-ja.com

SSHがホスト名ではなくUNIXソケットに接続する

短い質問:

Sshを介してローカルUNIXソケット(〜/ test.sock)に接続するにはどうすればよいですか?このソケットは、実際のsshサーバーに転送します。明白は機能せず、私はドキュメントを見つけることができません:

public> ssh /home/username/test.sock
"ssh: Could not resolve hostname: /home/username/test.sock: Name of service not known"

長い質問:

私が解決しようとしている問題は、(public)大学サーバーから私の(local)PCに接続することです。これは、NATの背後にあり、表示されません)公に。

正規の解決策は、local上のpublicへのsshプロキシ/トンネルを作成することです。

local> ssh -NR 2222:localhost:22 public

しかし、行政はポートの作成を禁止しているため、これは不可能です。そこで、代わりにUNIXソケットを使用することを考えました。

local> ssh -NR /home/username/test.sock:localhost:22 public

しかし、どうすればsshでそれに接続できますか?

4
bvolkmer

あなたは socatProxyCommandoption for sshを利用して実行できるはずです。 ProxyCommandは、サーバーとの通信にプロキシプロセスを使用するようにsshクライアントを構成します。 socatは、STDIN/STDOUTsocatとsshクライアント)とUNIXソケット

ssh -o "ProxyCommand socat - UNIX-CLIENT:/home/username/test.sock" foo
7
sebasth