我正在开发一个应用程序,它通过 ssh 连接到服务器并收集有关服务器的信息,例如磁盘和内存使用情况。它需要执行的另一项任务是获取可能位于服务器上任何位置的某些文件的文件大小信息。
由于此应用程序的性质,我希望限制服务器上的 ssh 用户只能读取 /proc/* 中的文件并获取某些文件的文件大小。我无法给出示例,因为文件可能会因服务器而异。
有没有什么方法可以锁定 ssh 帐户以防止读取 /proc/* 并对du
可能位于任何地方的文件执行操作?
答案1
您可以在目标用户的authorized_keys(*)中使用命令选项来限制访问。例如密钥如下所示:
command="/bin/ls -l /foo/bar.txt" ssh-rsa AAB....
command="/bin/df -Ph " ssh-rsa AAC....
这意味着每个命令都可以通过其自己的密钥访问,但所有 df 可以共享相同的密钥。
(*) 看man 5 authorized_keys