我使用SSH在服务器和客户端之间交换一些密钥。
客户端应该使用SSH向我发送他的公钥;我的问题是,如何限制bash中的其他命令?
即使我使用rbash
,客户端也可以运行如下命令:
ssh remote_host command_to_run
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
您是否尝试在使用特定SSH密钥时仅在服务器上授权一个命令?如果是,您可以查看command
文件的authorized_keys
声明。
例如,当用户foobar使用KEY时,仅授权ps -aux
,您可以这样编辑/home/foobar/.ssh/authorized_keys
:
command="ps -aux" ssh-rsa KEY
请参阅manual。
答案 1 :(得分:1)
请查看(服务器)计算机上的sshd_config。 “匹配”和“强制命令”应该为你提供手段 限制可用的命令(或在连接时执行哪些命令)。
您也可以考虑只允许scp(到特定目录) 并从服务器上的守护进程(或cron作业)中获取文件。