如何在~/.ssh/config文件中转义含#的用户名?
SSH Config中#字符的转义方法
在macOS Monterey系统的~/.ssh/config中,若配置如下:
Host foo HostName cyberark.company.com User user@user#company.com@target_vm
执行ssh foo时,User值里#company.com@target_vm部分会被自动截断,但直接执行ssh user@user#company.com@target_vm@cyberark.company.com却能正常工作——这是因为SSH配置文件默认会把#当作注释起始符,截断后续内容。
解决这个问题有两种简单方法:
用双引号包裹User字段的值:
修改配置为:Host foo HostName cyberark.company.com User "user@user#company.com@target_vm"双引号会将整个字符串标记为单一值,
#会被当作普通字符处理,不会触发注释解析。用反斜杠转义
#字符:
修改配置为:Host foo HostName cyberark.company.com User user@user\#company.com@target_vm反斜杠会取消
#的注释特殊含义,让它作为普通字符被识别。
修改完成后,执行ssh foo即可正常连接,不会再出现内容截断的问题。
内容的提问来源于stack exchange,提问作者shiraz73
相关产品推荐
相关产品推荐

