Je recherche le meilleur moyen d'appeler la commande à distance via SSH. Je crée l'utilisateur 'rpcall', génère un nouveau certificat et remplis authorized_keys. Sécurisez-le un peu plus avec
from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......
maintenant l'utilisateur rpcall ne peut pas se connecter au terminal
ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0
mais il est possible d'exécuter n'importe quelle commande
ssh -l rpc 192.168.12.1 cat /etc/passwd
Existe-t-il une solution pour limiter l'exécution des commandes à un seul script de traitement? Par exemple /home/rpcall/bin/command.sh
J'ai configuré le shell bash pour cet utilisateur et en utilisant le script de traitement de l'exécution forcée .bashrc, mais je ne sais pas comment passer les paramètres de l'appel ssh.
.bashrc pour l'utilisateur rpcall
/home/rpcall/bin/command.sh $params1 $params2
exit
appel ssh depuis une autre machine
ssh -l rpcall 192.168.12.1 "param1" "param2"
SSH_ORIGINAL_COMMAND
variable d'environnement. De cette façon, les paramètres peuvent être passés à cette commande, il suffit d'analyser cette variable d'environnement et de faire le travail demandé.