diff --git a/elements/local-config/README.rst b/elements/local-config/README.rst index 80a88d50..4e3eb877 100644 --- a/elements/local-config/README.rst +++ b/elements/local-config/README.rst @@ -3,3 +3,11 @@ local-config ============ Copies local user settings such as .ssh/authorized\_keys and $http\_proxy into the image. + +Environment Variables +--------------------- + +DIB_LOCAL_CONFIG_USERNAME + :Required: No + :Default: root + :Description: Username used when installing .ssh/authorized\_keys. diff --git a/elements/local-config/environment.d/62-ssh-key b/elements/local-config/environment.d/62-ssh-key new file mode 100644 index 00000000..cdb33da2 --- /dev/null +++ b/elements/local-config/environment.d/62-ssh-key @@ -0,0 +1 @@ +export DIB_LOCAL_CONFIG_USERNAME=${DIB_LOCAL_CONFIG_USERNAME:-root} diff --git a/elements/local-config/install.d/62-ssh-key b/elements/local-config/install.d/62-ssh-key index c66328a5..d8a9db17 100755 --- a/elements/local-config/install.d/62-ssh-key +++ b/elements/local-config/install.d/62-ssh-key @@ -8,9 +8,15 @@ fi set -eu set -o pipefail -if [ -e "/tmp/in_target.d/ssh-authorized-keys" ]; then - mkdir -p /root/.ssh - cat /tmp/in_target.d/ssh-authorized-keys >> /root/.ssh/authorized_keys - chmod 0700 /root/.ssh - chmod 0600 /root/.ssh/authorized_keys +if [ "$DIB_LOCAL_CONFIG_USERNAME" == "root" ]; then + DIR_NAME=${DIB_LOCAL_CONFIG_USERNAME} +else + DIR_NAME=home/${DIB_LOCAL_CONFIG_USERNAME} +fi + +if [ -e "/tmp/in_target.d/ssh-authorized-keys" ]; then + mkdir -p /${DIR_NAME}/.ssh + cat /tmp/in_target.d/ssh-authorized-keys >> /${DIR_NAME}/.ssh/authorized_keys + chmod 0700 /${DIR_NAME}/.ssh + chmod 0600 /${DIR_NAME}/.ssh/authorized_keys fi