用户名包含斜杠。如果我使用标准~/.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