我想让我的ssh命令隐藏/伪装成其他用户。
示例:
ssh user@host -i /my/private/key
不幸的是,这将出现在ps列表中,其他用户将能够看到我正在使用的私钥文件。有办法解决这个问题吗?
(他们以与我相同的用户身份登录)
答案 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