在日常工作中有一些敏感的数据需要在服务器上进行处理和存储,但是不希望远程用户能够访问和操作这些数据以外的内容。可以使用 sshcommand 选项来限制远程用户的权限,只允许他们使用特定的命令来处理和操作数据。通过这种方式,可以有效地限制远程用户的权限,保护敏感数据的安全。

通过在 authorized_keys 文件中设置该选项,可以使得用户只能执行特定的命令而不能执行其他命令。例如:

  1. 限制单个命令
command="/usr/local/bin/mycommand" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxxxxx
  1. 限制多个命令
# 修改 `authorized_keys`
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxxxxx
# 为
command="/bin/bash ~/.ssh/limit.sh" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxxxxx


# limit.sh 中的内容
if [[ "$SSH_ORIGINAL_COMMAND" =~ ^supported_command\ || "$SSH_ORIGINAL_COMMAND" == supported_command ]]
then
 # 继续执行
 eval $SSH_ORIGINAL_COMMAND
else
 # 提示不支持此命令
 echo "not support $SSH_ORIGINAL_COMMAND";
fi

参考资料:

  1. 如何将公钥限制为仅sftp登录 - Linux Shell