卷曲——不安全不工作

A L*_*A L 1 curl ubuntu-20.04

我需要在代理后面运行以下命令:

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
Run Code Online (Sandbox Code Playgroud)

返回与 SSL 相关的错误(因为代理将其证书放在中间)。我使用了“--insecure”并重新运行,这在一定程度上有效,但是 - 后来在该安装脚本中,再次调用curl,并返回相同的SSL错误。

我在 ~/.curlrc 中添加了“不安全”,以便调用脚本会忽略 SSL 错误..但是它们仍然会被抛出..如果我从一开始就删除 --insecure 它仍然有效(验证 .curlrc 工作)..所以我想这一定是权限问题..

运行“chmod 666 .curlrc”并使用“ls -l”验证所有的 rw - 相同的结果..如何忽略这些 SSL 错误?

小智 5

您的问题是您以自己的身份卷曲脚本,然后该脚本以 root 身份运行:

| sudo bash
Run Code Online (Sandbox Code Playgroud)

当您将某些内容通过管道传输到 时sudo bash,您将以 root 身份运行 bash,并且 bash 将以curlroot 身份启动所有子进程(包括脚本内的 s)。由于 root 的帐户不关心您的.curlrc,因此它不会读取它,也不会应用您的--insecure. 您有几个选择:

  1. 单独下载脚本并运行它并修改包含的行curl(撰写本文时为第 137 行和第 182 行)
  2. 使用内容.curlrc为 root创建一个文件/root/.curlrcinsecure

编辑:

顺便说一句,通常不建议在您的主目录中放置特定于应用程序的配置文件o+wr,因为这将允许任何登录系统的人修改您的个人配置。您说您运行了,chmod 666 .curlrc但这是不可取的,因为系统上的任何人(假设您的主目录是o+rx)都可以修改您的curl配置,包括设置特定于curl的socks代理以及它们MiTM您的所有curl流量。这尤其危险,因为他们可能会剥离 SSL,而您不会注意到,因为您已经忽略了自己的系统代理的不安全连接。