从ps隐藏参数

时间:2009-04-07 08:07:55

标签: unix command-line

我想让我的ssh命令隐藏/伪装成其他用户。

示例:

ssh user@host -i /my/private/key

不幸的是,这将出现在ps列表中,其他用户将能够看到我正在使用的私钥文件。有办法解决这个问题吗?

(他们以与我相同的用户身份登录)

7 个答案:

答案 0 :(得分:12)

如果他们以你的身份登录,那么基本上你无法阻止他们学习这些信息。如果你在Linux上,他们可以访问你的/ proc条目,并且可以轻松地学习这些信息。

他们还可以:

  • 删除所有文件。
  • 以您的名义发送邮件以侮辱贵公司的首席执行官。
  • 访问所有文件和命令行历史记录(如果有)。
  • 无数其他的事情。

这不是保护自己的可行方法。您需要先解决相同的用户问题。

答案 1 :(得分:3)

在Linux上,您可以执行类似

的操作
strncpy(argv[0], "mynewcmdlinehere", strlen(argv[0]));

不知道其他Unices,抱歉。

答案 2 :(得分:3)

隐藏命令行需要一个脚本,因此它是Catch-22,因为具有相同用户的其他ppl将有权访问该脚本。

解决方案非常简单:将密钥与密码短语一起使用。 (howto)

答案 3 :(得分:2)

即使您隐藏命令行,用户也可以运行lsof来查看ssh进程已打开的所有文件 - 其中包含身份文件。但是,如果模糊命令行确实是最终目标,则可以启动密钥代理,将身份加载到代理中,然后使用该代理进行ssh。代理程序使用的套接字路径由环境变量控制。

但这绝不是安全。 Pax是对的 - “以同一用户身份登录”问题是真正需要解决的问题。停止使用其他人的帐户。 ;)

答案 4 :(得分:0)

不允许他们知道私钥文件的位置并不是一个安全功能 - 他们真的不应该对它进行读取访问,所以如果他们知道它在哪里也没关系。通常,如果您可以控制应用程序的源,则可以使用命令行参数覆盖内存位置,这样就可以将它们修改为“无害的”。

答案 5 :(得分:0)

从我的记忆中,我记得很久以前做过类似事情

首先,创建一个名为ps的shell脚本,它运行ps并将grep除了包含ssh(或匹配的东西)之外的所有行,并把它放在一个安全的位置(〜/ bin / ps)

将〜/ bin /添加到您的路径中作为第一个搜索位置。

当然,他们仍然可以明确地使用/ usr / bin / ps(或其位置)

作为一个警告,这完全来自内存,我没有Unix盒来测试它...抱歉

答案 6 :(得分:-1)

您可以通过〜/ .ssh / config文件设置私钥,该文件由0700保护。 这是〜/ .ssh / config:

的示例
Host myhost.com
  IdentityFile /home/maxcohan/.ssh/github.com.id_rsa