Я ищу лучший способ вызвать удаленную команду через SSH. Я создаю пользователя 'rpcall', генерирую новый сертификат и заполняю авторизованные ключи. Защитите это немного больше с
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 для этого пользователя и использовал скрипт принудительной обработки .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
переменную окружения. Таким образом, параметры могут быть переданы этой команде, просто нужно проанализировать переменную среды и выполнить запрошенную работу.