使用APT认证配置文件

使用APT认证配置文件

我正在尝试将存储库(datastax)添加到我的源中。该存储库要求您添加用户名和密码,并且还警告您必须对特殊字符进行 urlencode

所以我补充道:

deb https://[email protected]:p@[email protected]/enterprise stable main

apt-get update要说:

W: Failed to fetch https://[email protected]/enterprise/dists/stable/main/binary-amd64/Packages  Could not resolve host: [email protected]

此时,我刚刚更改@%40

deb https://user%40mail.com:p%[email protected]/enterprise stable main

但没有骰子,错误保持完全相同。

在更改我的密码以删除任何特殊字符并希望错误不会转移到未找到之前,有人可以解释一下我在 apt-get 如何处理受特殊字符和密码保护的 repo 时未能理解的内容吗?mail.com:[email protected]

答案1

@字符是 URL 中的保留字符。

每 [RFC 3986,统一资源标识符 (URI):通用语法,第 2.2 节,保留字符][1]:

2.2.保留字符

URI 包括由“保留”集中的字符分隔的组件和子组件。这些字符被称为“保留”,因为它们可能(也可能不)被通用语法、每个特定于方案的语法或 URI 解除引用算法的特定于实现的语法定义为分隔符。如果 URI 组件的数据与作为分隔符的保留字符的用途发生冲突,则必须在形成 URI 之前对冲突数据进行百分比编码。

reserved    = gen-delims / sub-delims

gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"

sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
              / "*" / "+" / "," / ";" / "="

保留字符的目的是提供一组可与 URI 中的其他数据区分开的分隔字符。在将保留字符替换为相应的百分比编码八位字节方面存在差异的 URI 并不等效。对保留字符进行百分比编码,或对与保留字符对应的百分比编码八位字节进行解码,将改变大多数应用程序解释 URI 的方式。因此,保留集中的字符不受规范化影响,因此可以安全地由特定于方案和特定于生产者的算法用于界定 URI 内的数据子组件。

请注意,它@被列为“gen-delims”之一。 [1]:https://www.rfc-editor.org/rfc/rfc3986#section-2.2

答案2

使用APT认证配置文件

APT 使用单独的配置文件进行身份验证(此信息不会出现在配置文件中的“APT 行”中),这些文件位于并/etc/apt/auth.conf.d/针对您的用例采用以下语法:

machine FQDN login USERNAME password PASSWORD

FQDN在你的情况下,debian.datastax.com是,USERNAME[email protected],密码是p@ssword。 APT 应该自动为您处理剩下的事情(对任何特殊字符进行 URL 编码)。

相关内容