Estou procurando a melhor maneira de chamar o comando remoto através do SSH. Eu crio o usuário 'rpcall', giro um novo certificado e preenchei as chaves autorizadas. Fixe um pouco mais com
from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......
agora o usuário rpcall não pode acessar o terminal
ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0
mas é possível executar qualquer comando
ssh -l rpc 192.168.12.1 cat /etc/passwd
Existe alguma solução que eu possa limitar a execução de comandos apenas a um script de processamento? Por exemplo /home/rpcall/bin/command.sh
Eu configurei o bash shell para esse usuário e usando o script de processamento de execução forçada .bashrc, mas não sei como passar parâmetros da chamada ssh.
.bashrc para o usuário rpcall
/home/rpcall/bin/command.sh $params1 $params2
exit
chamada ssh de outra máquina
ssh -l rpcall 192.168.12.1 "param1" "param2"
SSH_ORIGINAL_COMMAND
variável de ambiente. Dessa forma, os parâmetros podem ser passados para esse comando, basta analisar a variável de ambiente e fazer o trabalho solicitado.