Tôi đang tìm cách tốt nhất để gọi lệnh từ xa qua SSH. Tôi tạo người dùng 'rpcall', tạo chứng chỉ mới và điền ủy quyền. Bảo vệ nó thêm một chút với
from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......
bây giờ người dùng rpcall không thể đăng nhập vào thiết bị đầu cuối
ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0
nhưng có thể chạy bất kỳ lệnh nào
ssh -l rpc 192.168.12.1 cat /etc/passwd
Có giải pháp nào tôi có thể giới hạn thực thi lệnh chỉ trong một tập lệnh xử lý không? Ví dụ: /home/rpcall/bin/command.sh
Tôi đã thiết lập bash shell cho người dùng này và sử dụng .bashrc buộc chạy tập lệnh xử lý, nhưng tôi không biết làm thế nào để truyền tham số từ cuộc gọi ssh.
.bashrc cho người dùng rpcall
/home/rpcall/bin/command.sh $params1 $params2
exit
cuộc gọi ssh từ máy khác
ssh -l rpcall 192.168.12.1 "param1" "param2"
SSH_ORIGINAL_COMMAND
biến môi trường. Bằng cách này, các tham số có thể được truyền cho lệnh đó, nó chỉ cần phân tích biến môi trường đó và thực hiện công việc được yêu cầu.