【问题标题】:hide / compile ssh key so it can't be used outside a public script隐藏/编译 ssh 密钥,使其不能在公共脚本之外使用
【发布时间】:2016-11-15 14:33:24
【问题描述】:

有没有人知道如何在脚本中使用 ssh 私钥从服务器上 scp 一些文件,使用私钥进行连接,但确保无法提取密钥以用于其他用途?

服务器已部署,无法生成新用户或新密钥。 我有根密钥。脚本/应用程序应该只从文件夹中抓取几个文件,而不会将密钥暴露给用户。

【问题讨论】:

  • 如果它是一个 public 密钥,它不会让您访问服务器。 (更不用说 public 密钥是公开发布的)private 密钥是您所关心的。如果您拥有root 的私钥,请与服务器管理员交谈并让他生成一个无法成功使用的新密钥以获取允许rm -r / 的访问权限(即使您说不能,但值得这样做案子)。否则,您将依赖 Linux 文件权限来允许用户在没有 read 权限的情况下执行脚本 x 以掩盖密钥的位置 - 这根本不是最佳选择。
  • 没有。您要解决的 X 问题是什么?
  • 我要解决的问题是我有一堆 linux 盒子部署给客户。他们不应该有 root 访问权限,所以我不能给他们私钥,但每个人都需要从系统中复制一些文件。我可以将密钥封装在可以复制文件的应用程序或脚本中,而不会冒着访问机器的风险吗?

标签: linux ssh scripting scp


【解决方案1】:

我认为您对公钥/私钥的想法倒退了。

如果我给你我的公钥,那么我的私钥允许我访问你的计算机。这有效地解决了您的问题,因为您永远不应该共享您的私钥,并且您会将公钥附加到您要访问的服务器上的 ~/.ssh/authorized_keys 文件中。

听起来您已经拥有访问服务器的私钥,因此无需加密,因为您使用它来访问服务器而不是相反。

使用它scp -i ...

希望对您有所帮助,这里有一个关于设置密钥的教程: https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2

【讨论】:

  • 我遇到的问题有点棘手:我必须提供一个脚本/应用程序,该脚本/应用程序可以使用根私钥复制一些特定文件,而无需让用户使用他们的密钥进行连接为其他目的而拥有。
  • 上述解决方案对我不起作用,因为它会暴露私钥,
  • 为什么不给它一个面向网络的 api 来允许下载您希望用户访问的特定文件呢?这是一个更简单的解决方案。
  • 我愿意,但软件已经部署在他们身上。我不能在他们身上再添加任何东西......
  • 如果您有根密钥,您应该能够在机器上执行任何操作,例如添加或删除文件。这就是为什么我们大多数人对您的问题感到困惑。您可以将密钥编译到您的程序中,但这只是掩盖它,有人可以通过对您的软件进行逆向工程来从技术上弄清楚。
猜你喜欢
  • 2022-12-13
  • 2014-02-22
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
相关资源
最近更新 更多