Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am learning puppet and using this tool install puppet clients on nodes.

puppet node install --login=root --keyfile=~/.ssh/id_rsa --install-script puppet-enterprise --installer-payload ~/puppet/puppet-enterprise-2.7.0-ubuntu-12.04-amd64.tar.gz --installer-answers ~/puppet/installer.answers --puppetagent-certname

Everything seems to work ok. My question is why this command requires me to pass along the private key of the ssh user. Shouldn't this only require the public key?

Isn't this a security risk? It was my understanding you are supposed to keep your private key PRIVATE.

share|improve this question
up vote 2 down vote accepted

The private key is staying private. All this is doing is telling puppet which SSH key to use to connect to the remote system. The corresponding public key must already be installed on the remote system.

This is akin to running ssh -i ~/.ssh/id_rsa - which is useful in case you use multiple private keys.

share|improve this answer

The reason it needs the private key is to authenticate. Think of it like passing on your password.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.