Hello,
I'm running a Bitbucket Shell Runner on Linux using systemd.
I already moved some parameters to an environment file, and that partially worked.
However, sensitive information such as OAuth client ID, OAuth client secret still appear in systemctl status output because they are passed as Java -D options.
Also, according to a chat-bot based search, there seems to be no official support for loading secrets automatically from an env file in start.sh
Is there an official or recommended way to securely pass secrets to the runner without exposing them in the process list?
Thanks
Hello KwanjungJU,
welcome to the community!
Unfortunately, there's no official way to hide OAuth client ID/secret from the Bitbucket Shell Runner's process list (ps/systemctl status). The start.sh passes them as -D Java options, making them visible.
Systemd env files help with unit files but not the final Java command line. The recommended approach is treating the runner host as trusted infrastructure:
For stricter isolation, we recommend using a dedicated hardened node per trust boundary. This means:
This approach ensures that, even if one node or team is compromised, OAuth secrets from other trust boundaries remain protected. Since Bitbucket Shell Runner has no built-in secret-hiding feature, isolating runners this way is the only practical method to protect secrets from local users on the host.
Greetings,
Alex
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.