简短的问题:
如何通过 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,该 PC 位于 NAT 后面且对公众不可见。
规范的解决方案是创建一个 ssh 代理/local
隧道public
:
local> ssh -NR 2222:localhost:22 public
但这是不可能的,因为政府禁止创建端口。所以我考虑过使用UNIX套接字来代替,它的工作原理是:
local> ssh -NR /home/username/test.sock:localhost:22 public
但现在,我怎样才能用 ssh 连接到它呢?
答案1
答案2
我已提交拉取请求以使其工作,但尚未合并:
答案3
我偶然发现https://medium.com/@dperny/forwarding-the-docker-socket-over-ssh-e6567cfab160其中讨论了从 OpenSSH 6.7 开始就可以实现套接字转发。
给出的例子是:
ssh -nNT -L $(pwd)/docker.sock:/var/run/docker.sock user@someremote
所以不再需要 socat 了。