安全地将凭据传递给命令行实用程序

问题描述 投票:0回答:1
curl -s 'https://api.cloudflare.com/client/v4/zones/{zone_identifier}/logpush/jobs' \
-H "X-Auth-Email: [email protected]" \
-H "X-Auth-Key: abc123"

如果我运行这个,秘密字符串

abc123
会在三个地方泄露:

  • 壳历史
  • 终端输出
  • ps
    输出

我可以用

$(pass show cloudflare-api-key)
之类的东西替换硬编码密码,在这种情况下,密码只会在
ps
输出中泄漏。这仍然很糟糕,因为我机器上的非特权守护进程可能会窃取我的凭据。

有没有一种方便的方法以临时方式将凭据传递给命令行实用程序,这样凭据就不会泄露给

ps

bash shell security zsh
1个回答
2
投票

Curl 可以从标准输入读取标志,因此假设您的密码不包含换行符:

pass show cloudflare-api-key \
  | sed -ne '1{s/"/\\"/g' -e 's/.*/-H "X-Auth-Key: &"/p}' \
  | curl -K- <other options>
© www.soinside.com 2019 - 2024. All rights reserved.