在另一个进程中运行可执行文件而不创build新进程

我想写一个程序,运行一个可执行映像,而无需创build一个新的进程…我想这样做,因为我想使用plink发送密码到远程ssh服务器…

plink程序发送命令行提供的密码..如果我使用fork和exec函数,用户可以使用进程pipe理器或ps -aef或cat / proc // cmdline查看命令行提供的密码。如何避免此安全漏洞..这个程序必须在Linux和Windows上运行..

设置您的SSH服务器使用RSA公/私钥认证,而不是密码。 一般来说,这通常是一个更好的选择。 请参阅http://www.google.com/search?q=set+up+ssh+rsa

大多数在命令行上接受密码的程序也可以通过文件,管道或环境变量来接受密码。 为什么不使用这些其他机制之一?

如果您担心密码是可见的,那么最好是对密码进行加密。 加密的密码对观察者来说没什么价值,所以你可以使用像exec()fork()

为了避免被提示输入密码或在可能被“嗅探”的地方使用纯文本密码,几乎可以确定设置公钥认证(假设你绑定了plink …)。

使用管道也是一个很好的解决方案。

我找到了一个plink包装器,可以完成你所需要的任务,主要是等待plink的STDOUT上的密码提示,然后在STDIN上给它一个响应。

希望这对你有用

那么,为什么在一开始就发送密码呢? 使用密码加密一些文本+时间戳,然后发送授权自己?

不,我不知道如何在不创建新流程的情况下调用另一个程序。