質問: ### 前提・実現したいこと SSHの"forced-commands-only"機能を活用して、 1つの公開鍵で複数のコマンドを順に実行したい。 ### 発生している問題 forced-commands-only で、公開鍵にcommands="~~~~"と記述をしますよね? SSHでファイルのコピーをして最後にrebootコマンドを発行したいのですが、 ひとつの公開鍵内で全て実行は可能でしょうか? ### 該当のソースコード 以下のように公開鍵内に記述した場合、正常に動作するのでしょうか? ``` commands="SCP A /xxxx" commands="SCP B /xxxx" commands="SCP C /xxxx" commands="reboot" ``` ### 試したこと 現在触れる環境がなく、確認ができません。 お手数ですが御教授ください。 ### 追記 以下を試しましたがダメでした。 2つのコマンドとして認識されません。 ``` commands="SCP A /xxxx reboot" ``` また以下を試しましたがダメでした。 公開鍵として認識されなくなりました。 ``` commands="SCP A /xxxx" commands="reboot" ```
回答: 複数のコマンドを実行したい場合は、; で繋げて書きます。 ``` commands="scp A /xxxx; scp B /xxxx; scp C /xxxx; reboot" ssh-rsa AAAAB3N... ``` ただ、私もシェルスクリプトで一つにまとめる事を勧めます。 手順を残したくないとの事ですが、authorized_keysに書かれる上記記述も一種の手順ですよね。 上記手順をシェルスクリプトに書いても、セキュリティ的には違いは無いと思います。