授予临时 SSH 访问权限以获得支持

授予临时 SSH 访问权限以获得支持

我必须为特定软件提供一些用户支持。由于通过电子邮件来回提供支持很乏味,因此我希望获得对用户帐户的临时访问权限。

让我们致电给鲍勃提供支持的用户。以下程序有效吗?

  • 通过电子邮件向 Bob 发送我的公共 SSH 密钥id_rsa.pub
  • 然后,Bob 创建了一个备份authorized_keys
  • 然后 Bob 将我的公共 SSH 密钥添加到authorized_keysviacat id_rsa.pub >> authorized_keys
  • 我以 Bob 用户身份通过​​ SSH 登录,无需知道 Bob 的密码
  • 在我完成故障排除并注销后,Bob 恢复到他的旧状态authorized_keys,从而撤销了我的 SSH 访问权限

附带问题:鲍勃如何监控我正在做的事情?由于授予我访问他的用户帐户的权限需要鲍勃给予我很大的信任,因此透明度可能会提高人们对这一措施的接受度。


为了完整起见,以下是我在家测试该过程的方法。

  • 我通过电子邮件将我的公共 SSH 密钥发送给 Bobid_rsa.pub
  • 鲍勃添加screen -x shared到他的.bashrc
  • Bob 启动屏幕会话并附screen -d -m -S shared加到它
  • 然后,Bob 创建了一个备份authorized_keys
  • Bob 将我的公共 SSH 密钥添加到authorized_keysviacat id_rsa.pub >> authorized_keys
  • 鲍勃通知我出发
  • 我以 Bob 用户身份通过​​ SSH 登录,无需知道 Bob 的密码。我会自动附加到已经运行的屏幕会话,因此鲍勃可以监视我的操作
  • 在我完成故障排除并注销后,Bob 恢复到他的旧状态authorized_keys,从而撤销了我的 SSH 访问权限
  • Bob 现在可以关闭所有屏幕会话并删除他添加到他的屏幕中的一行.bashrc

Bob 方面的要求

  • 正在运行的 SSH 服务器
  • 必须安装屏幕

这两个工具都可以从 Linux 发行版的软件包存储库中获得。由于沟通是在我和 Bob 之间直接完成的,我认为该解决方案优于评论中提到的 TeamViewer 方法。此外,TeamViewer 不是开源的。

答案1

程序没问题。鲍勃可以编辑您的密钥或恢复备份。考虑一下~/.ssh/authorized_keys不存在的可能性。

为了监视某人在 shell 中所做的事情,我将使用screen.

  1. Bob 添加screen -R到 .bashrc
  2. 登录时您将进入屏幕会话。Bob 可以看到您在屏幕会话中键入的所有内容。

(我记得炉边的屏幕命令,可能需要更多配置或测试。查看此文档http://wiki.networksecuritytoolkit.org/index.php/HowTo_Share_A_Terminal_Session_Using_Screen

答案2

通过电子邮件向 Bob 发送公钥存在“可能可以忽略不计”的信任链问题。 Bob 无法通过标准电子邮件确认您的身份,因为攻击者可能会生成欺骗性电子邮件。我说“可能可以忽略不计”,因为我假设没有攻击者专门针对您作为大型企业,试图生成虚构的流量。简而言之,还有更容易的骗局。但是,您的协议在技术上存在问题。

如果电子邮件使用 S/MIME 进行签名以确认邮件源自您的域,或者使用预共享 PGP 进行签名,那么这不是问题。

如果您不想麻烦地处理电子邮件,您应该将公钥托管在您的网站上HTTPS这样鲍勃就可以自己下载密钥。 然后指示Bob从网站获取密钥以确保安全。

相关内容