Hallo zuasammen, Ich habe folgendes Problem. ssh user@host < /path/script funktioniert ohne Probleme, in "script" steht nur hostname drin, führe ich den Befehl aus bekomme ich den Hostnamen der remote Maschine, so weit so gut. Wenn ich nun aber in der authorized_keys folgendes hinzufüge. command="/path/allowed_commands" und den Befehl erneut aufrufe funktioniert es nicht, in der allowed_commands steht hostname* als erlaubt drin, ein "ssh user@host hostname" funktioniert weiterhin, ich möchte aber den input aus einer Datei nehmen und nicht die Kommandos einzeln eintippen. Hat jemand eine Idee warum das mit < /path/script nicht funktioniert ? Bin für jeden Tip dankbar. Der Vollständigkeit hier der Inhalt von allowed_commands #!/bin/bash echo "$SSH_ORIGINAL_COMMAND" >>/tmp/ssh_log.log case "$SSH_ORIGINAL_COMMAND" in hostname*) $SSH_ORIGINAL_COMMAND ;; *) echo ERROR: invalid command "${SSH_ORIGINAL_COMMAND}" is not allowed. ;; esac -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Christian, da ich hier keine Antwort für dich gelesen habe, hier meine Idee: Wenn Du direkt `hostname` ausführen lässt, ist das ein Befehl, der als solcher nach Deinen Angaben ausgeführt wird. Wenn Du mit `<` den Inhalt einer Datei abschickst, kommt der über STDIN bei der Shell an, die ihn erst interpretieren muss. Das ist eine andere Ebene, wo der Befehl dann aufgerufen wird. Ich vermute Dein Problem dort. Ein Versuch wäre es, mal die bash als allowed_command mit aufzunehmen. Vielleicht funktioniert es dann. Allerdings willst Du bstimmt die bash nicht als allowed_command haben, denn dann sind die Einschränkungen durch allowed_command größtenteils ausgehebelt. Gruß Jan christian zimmermann wrote:
Hallo zuasammen, Ich habe folgendes Problem. ssh user@host < /path/script funktioniert ohne Probleme, in "script" steht nur hostname drin, führe ich den Befehl aus bekomme ich den Hostnamen der remote Maschine, so weit so gut. Wenn ich nun aber in der authorized_keys folgendes hinzufüge. command="/path/allowed_commands" und den Befehl erneut aufrufe funktioniert es nicht, in der allowed_commands steht hostname* als erlaubt drin, ein "ssh user@host hostname" funktioniert weiterhin, ich möchte aber den input aus einer Datei nehmen und nicht die Kommandos einzeln eintippen. Hat jemand eine Idee warum das mit < /path/script nicht funktioniert ? Bin für jeden Tip dankbar.
Der Vollständigkeit hier der Inhalt von allowed_commands
#!/bin/bash echo "$SSH_ORIGINAL_COMMAND" >>/tmp/ssh_log.log case "$SSH_ORIGINAL_COMMAND" in hostname*) $SSH_ORIGINAL_COMMAND ;; *) echo ERROR: invalid command "${SSH_ORIGINAL_COMMAND}" is not allowed. ;; esac -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Jan Handwerker schrieb:
christian zimmermann wrote:
Hallo zuasammen, Ich habe folgendes Problem. ssh user@host< /path/script funktioniert ohne Probleme, in "script" steht nur hostname drin, führe ich den Befehl aus bekomme ich den Hostnamen der remote Maschine, so weit so gut. Wenn ich nun aber in der authorized_keys folgendes hinzufüge. command="/path/allowed_commands" und den Befehl erneut aufrufe funktioniert es nicht, in der allowed_commands steht hostname* als erlaubt drin, ein "ssh user@host hostname" funktioniert weiterhin, ich möchte aber den input aus einer Datei nehmen und nicht die Kommandos einzeln eintippen. Hat jemand eine Idee warum das mit< /path/script nicht funktioniert ? Bin für jeden Tip dankbar.
Der Vollständigkeit hier der Inhalt von allowed_commands
#!/bin/bash echo "$SSH_ORIGINAL_COMMAND">>/tmp/ssh_log.log case "$SSH_ORIGINAL_COMMAND" in hostname*) $SSH_ORIGINAL_COMMAND ;; *) echo ERROR: invalid command "${SSH_ORIGINAL_COMMAND}" is not allowed. ;; esac --
ungeprüfte Idee ... war da nicht was mit Shell und lokalen Variablen und globalen Variablen? Ich müsste jetzt auch erst mal nachlesen ...warum es EXPORT gibt und wie das funktioniert ... Ich tippe in diese Richtung,,, da du eine (neue) Shell aufmachst... Fred -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
christian zimmermann
-
Fred Ockert
-
Jan Handwerker