SSH를 통해 원격 명령을 호출하는 가장 좋은 방법을 찾고 있습니다. 사용자 'rpcall'을 생성하고 새 인증서를 생성 한 후 authorized_keys를 채 웁니다. 좀 더 안전하게
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 force run 처리 스크립트를 사용했지만 ssh 호출에서 매개 변수를 전달하는 방법을 모르겠습니다.
rpcall 사용자를위한 .bashrc
/home/rpcall/bin/command.sh $params1 $params2
exit
다른 컴퓨터에서 ssh 호출
ssh -l rpcall 192.168.12.1 "param1" "param2"
SSH_ORIGINAL_COMMAND
환경 변수를 통해 매개 변수에 액세스 할 수 있습니다 . 이 방법으로 매개 변수를 해당 명령에 전달할 수 있으며 해당 환경 변수를 구문 분석하고 요청 된 작업을 수행하면됩니다.