Sto cercando il modo migliore per chiamare il comando remoto su SSH. Creo l'utente "rpcall", genera un nuovo certificato e riempio le chiavi autorizzate. Proteggilo un po 'di più con
from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......
ora l'utente rpcall non può accedere al terminale
ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0
ma è possibile eseguire qualsiasi comando
ssh -l rpc 192.168.12.1 cat /etc/passwd
Esiste una soluzione che posso limitare l'esecuzione del comando a un solo script di elaborazione? Ad esempio /home/rpcall/bin/command.sh
Ho installato la shell bash per questo utente e usando lo script di elaborazione forzata .bashrc, ma non so come passare i parametri dalla chiamata ssh.
.bashrc per l'utente rpcall
/home/rpcall/bin/command.sh $params1 $params2
exit
chiamata ssh da altra macchina
ssh -l rpcall 192.168.12.1 "param1" "param2"
SSH_ORIGINAL_COMMAND
variabile d'ambiente. In questo modo i parametri possono essere passati a quel comando, deve solo analizzare quella variabile d'ambiente ed eseguire il lavoro richiesto.