Max*_*bel 0 domain-name-system ssh docker
我有一个绑定端口 2222:22 的 docker 容器。可以使用连接ssh -T sub.example.com -p 2222。
我正在寻找一种无需指定端口号即可访问 ssh 容器的方法。我认为这可以通过 DNS 记录来完成。
我SRV _ssh._tcp.sub 5 10022 sub.example.com在提供商的管理界面中为我的域设置了 DNS 记录,这不起作用。
有没有办法做到这一点?
您还需要实际使用 SRV 记录的客户端,据我所知,没有一个(常见的)SSH 客户端会...
很少有常见的应用程序/协议真正支持 SRV 记录。
相反:编辑您的 ssh 客户端配置文件~/.ssh/config为该主机创建一个条目,您至少不再需要在每次需要连接时在命令行上明确指定端口号:
#~/.ssh/conf
Host sub.example.com
HostName sub.example.com
Port 2222
...
Run Code Online (Sandbox Code Playgroud)
进而 ssh sub.example.com
我将wrapsrv与 一起使用ProxyCommand并socat使用SRV记录来确定连接端点:
Host *.my.domain
ProxyCommand wrapsrv _ssh._tcp.%h socat STDIO TCP:%%h:%%p
Run Code Online (Sandbox Code Playgroud)
优点是两者scp都sftp应该从 ssh 配置文件中使用它。
请注意,SRV记录需要三个整数:优先级、权重和端口,而不是您在问题中显示的两个整数。