Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Puppet Labs SSH Public Keys
Shell Ruby Puppet Pascal


Puppet Labs SSH Keys

Puppet Labs engineers and technical people should add their SSH public keys to the templates directory of this project. These keys are periodically copied to our Delivery systems that are not managed by Puppet.


If a host is not being managed by Puppet, then SSH access can be granted using this process.

If the host has a cron that uses /etc/cron.hourly/ then simply copy the script into /etc/cron.hourly/ like this:

cd /etc/cron.hourly/
curl -O
chmod +x manage_root_authorized_keys

If the cron on the system does not support cron.hourly, the following crontab entry may be used.

mkdir -p /usr/local/bin
cd /usr/local/bin
curl -O
chmod +x manage_root_authorized_keys
crontab -e

The entry should look like:

# min hour dom month dow command
59 * * * * /usr/local/bin/manage_root_authorized_keys

Adding Keys

Keys should be added to the templates/ssh/ directory of this repository. Add your public key as, and then append it to authorized_keys. This might look something like:

# Be sure to replace SSHKEY_DIR and USERNAME with the correct values!
export SSHKEY_DIR=~/working/puppetlabs-sshkeys/templates/ssh
export USERNAME="username"

cp ~/.ssh/ ${SSHKEY_DIR}/${USERNAME}.pub
cat ${SSHKEY_DIR}/${USERNAME}.pub >> ${SSHKEY_DIR}/authorized_keys

Once your pull request has been merged into the master branch, the keys will automatically be copied to all of the hosts using this script.

Something went wrong with that request. Please try again.