在 /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\\\ \&\<\>\"\'
更简单的解决方法:将密码更改为不包含特殊字符的密码。我倾向于使用随机密码生成器并排除特殊符号和模糊字符。