我正在寻找通过SSH调用远程命令的最佳方法。我创建用户“ rpcall”,生成新证书并填写authorized_keys。通过以下方式进一步保护它
from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......
现在用户rpcall无法登录到终端
ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0
但是可以运行任何命令
ssh -l rpc 192.168.12.1 cat /etc/passwd
有什么解决方案可以将命令执行限制为仅一个处理脚本吗?例如/home/rpcall/bin/command.sh
我为此用户设置了bash shell,并使用.bashrc强制运行处理脚本,但是我不知道如何从ssh调用传递参数。
.bashrc用于用户rpcall
/home/rpcall/bin/command.sh $params1 $params2
exit
来自其他机器的ssh呼叫
ssh -l rpcall 192.168.12.1 "param1" "param2"
SSH_ORIGINAL_COMMAND
环境变量访问参数。这样可以将参数传递给该命令,它只需要解析该环境变量并完成请求的工作即可。