【问题标题】:Can _netrc handle passphrases with spaces?_netrc 可以处理带空格的密码吗?
【发布时间】:2012-09-22 09:32:17
【问题描述】:

以下配置有效:

machine code.mycompany.net
login supernerd
password HelloW0rld

以下配置不起作用:

machine code.mycompany.net
login supernerd
password Please excuse my dear aunt sally.

【问题讨论】:

  • 在密码两边加上引号。
  • @runrig 以及如何存储带有空格和引号的密码?
  • @ceving 唯一的问题是密码是否同时包含单引号和双引号。

标签: git .netrc


【解决方案1】:

bug reportthis page 来看,.netrc (_netrc) 文件中似乎不支持密码中的空格。
或者即使它们是,并非所有使用该.netrc 文件的程序都能够正确解释所述空间。


正如runrig 提到in the comments

在此处引用另一个答案中的字段应该可以,但是 python 库不喜欢它。
但是,例如,命令行 ftpperl netrc 库就可以了。

所以当使用这些命令时这应该可以工作:

password "Please excuse my dear aunt sally."

【讨论】:

  • 在 netrc 文件中以这种方式使用时,手册页没有提到空格:linux.die.net/man/5/netrc
  • python netrc 库不支持空格,但应该。这是图书馆的一个错误。在这里引用另一个答案中的字段应该可以,但是python库不喜欢它。但是,例如,命令行 ftp 和 perl netrc 库就可以了。
【解决方案2】:

在 SGI 上运行的 IRIX 6.5 上使用 ftp,我在密码周围添加了引号,它工作正常,例如:

password "Please excuse my dear aunt sally." 

【讨论】:

  • git (v1.9.5) 不理解包含空格的引用密码。
【解决方案3】:

我研究过wget的netrc.c;我希望大多数 netrc 解析器都可以类似地工作:

注意# 在空格之后开始注释直到行尾。

字符串可以放在双引号之间(例如,如果字符串开始 #,或者包含很多我们不想反斜杠的空格)。

"#pass%"
"S3cret with spaces"

为确保字符被理解为字符串的一部分,请为其添加前缀 带有反斜杠,以便逐字理解。这是支持的 带或不带双引号:

S3cret\ with\ spaces
\#not-a-comment
backslash:\\
"anything"
"double\"quote"

【讨论】:

    猜你喜欢
    • 2012-04-07
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2016-11-25
    相关资源
    最近更新 更多