bvo*_*mer 7 linux ssh ssh-tunneling port-forwarding unix-sockets
如何通过 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"
Run Code Online (Sandbox Code Playgroud)
我试图解决的问题是从我的 ( public) 大学服务器连接到我的 ( local) PC,它位于 NAT 之后,对公众不可见。
规范的解决方案是创建一个 ssh 代理/隧道到localon public:
local> ssh -NR 2222:localhost:22 public
Run Code Online (Sandbox Code Playgroud)
但这是不可能的,因为管理部门禁止创建端口。所以我考虑过使用 UNIX 套接字,它有效:
local> ssh -NR /home/username/test.sock:localhost:22 public
Run Code Online (Sandbox Code Playgroud)
但是现在,我如何使用 ssh 连接到它?
您应该能够使用sshsocat和ProxyCommand 选项。ProxyCommand 将 ssh 客户端配置为使用代理进程与您的服务器进行通信。socat在STDIN/STDOUT(socat和 ssh 客户端)和您的UNIX 套接字之间建立双向通信。
ssh -o "ProxyCommand socat - UNIX-CLIENT:/home/username/test.sock" foo
Run Code Online (Sandbox Code Playgroud)