小编and*_*rew的帖子

如何配置 SSHd 以允许单个命令,而不授予用户完全登录访问权限?

我正在寻找通过 SSH 调用远程命令的最佳方式。我创建用户“rpcall”,生成新证书并填写authorized_keys。用它多一点保护它

from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......
Run Code Online (Sandbox Code Playgroud)

现在用户 rpcall 无法登录到终端

ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0
Run Code Online (Sandbox Code Playgroud)

但可以运行任何命令

ssh -l rpc 192.168.12.1 cat /etc/passwd
Run Code Online (Sandbox Code Playgroud)

是否有任何解决方案可以将命令执行限制为一个处理脚本?例如/home/rpcall/bin/command.sh

我为这个用户设置了 bash shell 并使用 .bashrc 强制运行处理脚本,但我不知道如何从 ssh 调用传递参数。

.bashrc 用户 rpcall

/home/rpcall/bin/command.sh $params1 $params2
exit
Run Code Online (Sandbox Code Playgroud)

来自其他机器的 ssh 调用

ssh -l rpcall 192.168.12.1 "param1" "param2"
Run Code Online (Sandbox Code Playgroud)

ssh remote exec

11
推荐指数
1
解决办法
9319
查看次数

标签 统计

exec ×1

remote ×1

ssh ×1