相关疑难解决方法(0)

如何隐藏作为命令行参数传递的密码?

我正在运行一个软件守护程序,它需要某些操作来输入密码来解锁某些功能,例如:

$ darkcoind masternode start <mypassphrase>
Run Code Online (Sandbox Code Playgroud)

现在我在我的无头 debian 服务器上遇到了一些安全问题。

例如,每当我搜索我的 bash 历史记录时,Ctrl+R我都可以看到这个超强密码。现在我想我的服务器被入侵了,一些入侵者可以访问 shell,并且可以简单地Ctrl+R在历史记录中找到我的密码。

有没有办法输入密码而不显示在 bash 历史记录ps/proc或其他任何地方?


更新 1:不向守护程序传递密码会引发错误。这是没有办法的。


更新 2:不要告诉我删除软件或其他有用的提示,例如挂掉开发人员。我知道这不是最佳实践示例,但该软件基于比特币,并且所有基于比特币的客户端都是某种 json rpc 服务器,它侦听这些命令,并且它的已知安全问题仍在讨论中(abc) .


更新 3:守护进程已经启动并使用命令运行

$ darkcoind -daemon
Run Code Online (Sandbox Code Playgroud)

ps只显示启动命令。

$ ps aux | grep darkcoin
user     12337  0.0  0.0  10916  1084 pts/4    S+   09:19   0:00 grep darkcoin
user     21626  0.6  0.3 1849716 130292 ?      SLl  May02   6:48 darkcoind …
Run Code Online (Sandbox Code Playgroud)

security linux password command-line-interface

43
推荐指数
6
解决办法
5万
查看次数