我想在服务器上设置双因素身份验证,但我没有管理员帐户。这样做的目的是:我想让其他人能够创建到此服务器的 SSH 隧道(通过我的帐户),但我不希望他们拥有 shell 访问权限。
到目前为止我发现的唯一线索是创建自定义 .bash_profile 脚本,该脚本要求输入第二个密码,就像这个问题一样:
但是这是没用的,因为仍然可以通过 sftp 登录并删除脚本。
那么,没有超级用户权限也能做到这一点吗?
答案1
您的问题混淆了术语。首先,您要求进行双因素身份验证。接下来,您继续解释您的需求,而这些需求与双因素身份验证完全无关。双因素身份验证本身不会对用户在经过身份验证后可以执行的操作施加任何限制。
只要使用公钥进行身份验证,就可以对 ssh 登录的操作施加限制。
在 中~/.ssh/authorized_keys
,您可以对该文件中指定的每个键的用途施加限制。例如,如果您不想允许 shell 访问,您可以强制执行一个不执行任何操作的命令:
command="/bin/false" ssh-rsa ...
该行上的密钥将无法访问 shell 或 sftp。只要-N
在客户端使用该标志,它仍可用于端口转发。可能存在许多其他限制。有关可以对密钥使用施加的限制的完整列表,请参阅 sshd 手册页。