Ich suche nach dem besten Weg, um Remote-Befehl über SSH aufzurufen. Ich erstelle den Benutzer 'rpcall', generiere ein neues Zertifikat und fülle autorisierte Schlüssel aus. Sichern Sie es ein bisschen mehr mit
from="ip",no-agent-forwarding,no-X11-forwarding,no-port-forwarding,no-pty ssh-rsa ......
Jetzt kann sich der Benutzer rpcall nicht am Terminal anmelden
ssh -l rpc 192.168.12.1
PTY allocation request failed on channel 0
Es ist jedoch möglich, einen beliebigen Befehl auszuführen
ssh -l rpc 192.168.12.1 cat /etc/passwd
Gibt es eine Lösung, mit der ich die Befehlsausführung nur auf ein Verarbeitungsskript beschränken kann? Zum Beispiel /home/rpcall/bin/command.sh
Ich habe die Bash-Shell für diesen Benutzer eingerichtet und das .bashrc Force Run-Verarbeitungsskript verwendet, aber ich weiß nicht, wie ich Parameter vom ssh-Aufruf übergeben soll.
.bashrc für Benutzer rpcall
/home/rpcall/bin/command.sh $params1 $params2
exit
SSH-Anruf von einem anderen Computer
ssh -l rpcall 192.168.12.1 "param1" "param2"
SSH_ORIGINAL_COMMAND
Umgebungsvariable auf die Parameter zugreifen . Auf diese Weise können Parameter an diesen Befehl übergeben werden. Er muss lediglich diese Umgebungsvariable analysieren und die angeforderte Arbeit ausführen.