我登录到一个不属于我的共享系统,并且可以访问该系统上的 gsutil 命令。
我想在该系统上使用 gsutil 来操作一些谷歌云数据(下载备份等),但这是否意味着我必须创建包含我的凭证或私钥的本地文件?
这让我很困扰,因为这不是我自己的系统,而且我不信任这些存储在共享系统上的敏感凭证……
有没有办法将凭据保存在我的计算机上的本地,并远程运行 gsutil,如下所示:
远程控制[电子邮件保护]gsutil blah blah blah -C ./my/local/config.key
...所以我将密钥/凭证保存在本地,并通过 SSH 远程运行 gsutil?
答案1
如果你gsutil auth login
在不受信任的系统上运行以获取凭据,运行其他 gsutil 命令,然后使用 结束会话,会怎么样gsutil auth revoke
?虽然它可能会留下一些东西,但可能会看就像不受信任的文件系统上的凭证一样,它们对 Google 来说就是胡言乱语;它们对于身份验证无效。
此场景假设:(a) 不受信任系统的命令和库是值得信任的(例如,它们不会尝试将您的凭据缓存到其他地方)和 (b) 不受信任系统的 root 帐户在会话期间不会主动尝试窥探您的 gsutil 凭据。漏洞窗口(即您的攻击面)仅限于和命令gsutil
之间的时间段。auth
revoke
另一种选择可能是创建并挂载加密的 FUSE 文件系统,但攻击面是相同的:当您使用该gsutil
命令执行工作时,它会使用您的有效凭据,因此您的暴露程度是相同的。就此而言,即使您可以通过套接字或命名管道通过 ssh 连接将凭据传递给命令gsutil
,如果 gsutil 已被修改以捕获您的凭据,那么在凭据被撤销之前,您都很容易受到攻击。
我知道这扩大了您的问题范围,但了解您担心的攻击媒介可能有助于我们破解解决方案以减轻您的担忧。仅仅将系统称为“不受信任”可能意味着很多不同的事情。