【问题标题】:How to escape a # username in ~/.ssh/config file如何转义 ~/.ssh/config 文件中的 # 用户名
【发布时间】:2023-02-05 04:12:42
【问题描述】:

我在 macos monterey 上并且在我的 ~/.ssh/config 中有以下内容:

Host foo
  HostName cyberark.company.com
  User user@user#company.com@target_vm

来自我的终端的 ssh foo#company.com@target_vm 部分我的用户值自动截断,因为 ssh user@user#company.com@target_vm@cyberark.company.com 工作正常。似乎# 之后的所有内容都被视为 .ssh/config 文件中的 cmets。我如何在这个文件中转义#?

【问题讨论】:

    标签: ssh ssh-config


    【解决方案1】:

    来自 SSH Config documentation 的字符 # 是一个由 ssh 解释的特殊字符:

    空行和以“#”开头的行是 cmets。

    您可以通过明确告诉 ssh 读取乱码字符而不是解释它们来防止这些行为发生:

    • 使用反斜杠转义字符特殊字符,例如#@(更多信息here
    • 用引号将整个字符串放在两侧 '

    正如来自Martin Prikrylthis answer中提到的

    在这里,您可能想根据自己的情况尝试以下操作:

    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
    

    【讨论】:

      猜你喜欢
      • 2012-02-27
      • 2017-09-29
      • 1970-01-01
      • 2014-12-03
      • 2012-03-19
      • 2013-10-11
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多