我需要在代理后面运行以下内容:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
哪个返回了与 SSL 相关的错误(因为代理将其证书放在两者之间)。我使用了“--insecure”并重新运行,这在一定程度上可以工作,但是-稍后在该安装脚本中,再次调用 curl,并返回相同的 SSL 错误。
我在 ~/.curlrc 中添加了“不安全”,以便调用脚本会忽略 SSL 错误..但是它们仍然会被抛出..如果我从一开始就放弃 --insecure 它仍然有效(验证 .curlrc 工作)..所以我认为这一定是权限问题..
Ran 'chmod 666 .curlrc' 并使用 'ls -l' 验证了所有的 rw - 结果相同。如何忽略这些 SSL 错误?
您的问题是您以自己的身份卷曲脚本,然后脚本以 root 身份运行:
当您将某些内容输入
sudo bash
时,您将以 root 身份运行 bash,并且 bash 将以 root 身份启动所有子进程(包括curl
脚本中的 s)。由于 root 的帐户不关心您的.curlrc
,它不会读取它,也不会应用您的--insecure
. 你有几个选择:curl
(在撰写本文时第 137 和 182 行).curlrc
为root创建一个文件/root/.curlrc
insecure
编辑:
顺便说一句,通常不建议在您的主目录中包含特定于应用程序的配置文件 be
o+wr
,因为这将允许任何登录系统的人修改您的个人配置。你说你跑了chmod 666 .curlrc
,但这是不可取的,因为系统上的任何人(假设你的主目录是o+rx
)都可以修改你的 curl 配置,包括设置一个特定于 curl 的 socks 代理和他们 MiTM 所有你的 curl 流量。这尤其危险,因为它们可能会剥离 SSL,而您不会注意到,因为您已经忽略了自己系统代理的不安全连接。