如果 %r 包含斜杠,如何正确配置 SSH ControlPath?

如果 %r 包含斜杠,如何正确配置 SSH ControlPath?

用户名包含斜杠。如果我使用标准~/.ssh/sockets/master-%r@%h:%p作为 ConfigPath,ssh 会抱怨 unix_listener:无法绑定到路径~/.ssh/sockets/master-username/which/contains/slash@host_ip:port.s5FLlcqcHkethwd0:没有这样的文件或目录。

用户名中的斜杠似乎被解释为路径分隔符。

我该如何解决这个问题?

答案1

这就是%C令牌的用途。来自文档:

%C    Hash of %l%h%p%r.

由于它生成用户名(和其他数据)的哈希值,因此您无需担心您的用户名包含奇怪的字符。

例如,如果我运行:

ssh -M -o ControlPath=/tmp/control-%C [email protected]

我可能会找到一个名为:

/tmp/control-3ba0719e3df95b719713923899a65f64655dea64

相关内容