http - yum 客户端配置 : How to use basic authentication with a port other than 80?

标签 http authentication yum

我在配置使用 HTTP/Apache 提供的 Yum 存储库时遇到了问题。

我想使用 http 基本身份验证,并将监听端口设置为 80 以外的端口,因为这个 repo 在我的 DMZ 中。我试图通过如下设置我的 baseurl 来做到这一点(来 self 的 repo 文件):

baseurl=http://user:password@<my-ip>:<my-non-80-port>/yum/RHEL/7/base/$basearch/

yum.conf 的文档表明您可以像我上面那样通过将用户名/密码添加到 URL 来进行基本的 http 身份验证。当我尝试从客户端执行 yum search mysql 时出现以下错误:

[Errno 14] HTTP Error 401: Authorization Required

这向我表明,指定端口的额外“:”混淆了 yum 对我的 url 的解析。我删除了端口,将服务器重新设置为端口 80,它可以正常工作。

看来您不能进行基本的 http 身份验证并更改 Web 服务器监听的端口号。我注意到在较新版本的 Yum 中有 usernamepassword 指令,但我的版本似乎没有这个指令(我正在运行 yum-3.2.22- 37.0.1.el5)。有什么解决方法吗?

最佳答案

我通过将以下行添加到我的 yum 配置来关闭插件来解决这个问题。

plugins=0

我认为解决方法有效,因为基础 yum 更新程序可以很好地处理来自 baseurl 的授权信息,但是一些插件(例如 fastmirror 插件)没有正确记住授权。因此,我在没有启用插件的情况下的行为是,最初更新会起作用,然后它会开始失败,并出现问题中的授权错误。一旦我禁用了插件,一切就开始正常工作了。

关于http - yum 客户端配置 : How to use basic authentication with a port other than 80?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182050/

相关文章:

python - 如何通过代理调试 urllib2 请求

ruby - sinatra-authentication gem 不是在寻找正确的 View 吗?

linux - 我如何找出 w/YUM 或 RPM 安装了哪些文件?

ajax - 在 golang 中提供多个静态文件并发出 post 请求

java - 如何使用 HttpURLConnection 发送 HttpRequest?

php - 如何在php中限制每个用户的并发登录数

authentication - 如何离线使用LDAP凭证?

homebrew - 通过 brew 安装 yum 的确切命令是什么?

gcc - 在没有 gcc8 的生产环境中运行使用 gcc8 构建的程序

在 bash 脚本中使用 cURL 的 Javascript 登录