当密码包含空格和感叹号时,/etc/apt/auth.conf 中的密码会被拒绝

当密码包含空格和感叹号时,/etc/apt/auth.conf 中的密码会被拒绝

在 /etc/apt/auth.conf 中,我有以下几行

machine example.org/nexus/repository/my_apt_repo/
login my_usename
password not my actual password 1!

尝试运行sudo apt update导致错误消息

E: Failed to fetch https://example.org/nexus/repository/my_apt_repo/dists/bionic/main/binary-amd64/Packages  401  Unauthorized 

这似乎尝试登录但失败的次数足够多,从而暂时冻结我的凭据。

这已经由为其他人工作的 ansible playbook 设置好了,我可以使用给定的凭据登录 nexus 并获取包。

我猜想这是需要以某种方式转义密码的问题。这是正确的吗?如果是,我该如何转义密码中的空格、感叹号等?

有一个问题关于配置 http 代理登录,但接受的答案并不能解决这个问题,因为这是一个不同的配置。

答案1

2 种方法:

  • 使用 html 编码

    1 \&<>"' 变成1%5C%20%26%3C%3E%22%27

  • 用一个\

    1 \&<>"'变成1\\\ \&\<\>\"\'

更简单的解决方法:将密码更改为不包含特殊字符的密码。我倾向于使用随机密码生成器并排除特殊符号和模糊字符。

相关内容