有没有办法针对任何命令使用提示在bash中传递敏感数据?
假设我sha1pass用来在命令行上生成一些敏感密码的哈希。我可以sha1pass mysecret用来生成的哈希,mysecret但这具有mysecretbash历史中现在存在的缺点。有没有一种方法可以完成此命令的最终目标,同时又可以避免mysecret使用passwd-style提示符显示纯文本格式? 我也对将敏感数据传递到任何命令的通用方法感兴趣。当敏感数据作为参数(例如in中sha1pass)或在STDIN上传递给某些命令时,该方法将更改。 有没有办法做到这一点? 编辑:这个问题引起了很多关注,下面提供了几个很好的答案。摘要是: 按照@Kusalananda的回答,理想情况下,永远不必将密码或机密信息作为实用程序的命令行参数提供。正如他所描述的那样,这很容易受到攻击,并且应该使用一种设计更好的实用程序,该实用程序能够接收STDIN上的秘密输入。 @vfbsilva的答案描述了如何防止事物存储在bash历史记录中 @Jonathan的答案描述了一种非常好的方法,只要程序可以在STDIN上获取其秘密数据即可。因此,我决定接受这个答案。sha1pass在我的OP中只是一个例子,但是讨论确定存在更好的工具,它们确实可以在STDIN上获取数据。 正如@R ..在他的答案中指出的那样,对变量使用命令扩展并不安全。 因此,总而言之,我接受@Jonathan的回答,因为鉴于您有一个设计良好且行为良好的程序,它是最好的解决方案。尽管从根本上将密码或机密作为命令行参数传递是不安全的,但其他答案提供了缓解简单安全性问题的方法。