<div dir="ltr">Thanks for all your responses. I'm going with ssh-copy-id in the short term and looking at cf3 for a longer-term solution. Anyone got any recommendations / avoids for puppet / chef and cfengine? Caveat : I'm a somewhat dyed-in-the-wool sysadmin and have no real desire to become a 'devops' or spend the rest of my life writing ruby scripts, if I can avoid them.<div>

<br></div><div>Tid <br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 6 March 2014 15:16, Philip Hands <span dir="ltr"><<a href="mailto:phil@hands.com" target="_blank">phil@hands.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">tid <<a href="mailto:td@bloogaloo.co.uk">td@bloogaloo.co.uk</a>> writes:<br>
<br>
> Hi Folks,<br>
><br>
> I have a group of developers ( 12 ) who ssh into ~60 boxes using a few<br>
> shared keys.<br>
<br>
</div>"shared keys" -- that doesn't sound right -- I'd generally recommend not<br>
even sharing one's own key between multiple machines, let alone sharing<br>
one key between multiple people.<br>
<div class=""><br>
> I'm looking for a steer on applications that can push out a set of<br>
> public keys based on a limited set of criteria<br>
<br>
</div>There's cf3 (the much less annoying version of cfengine), since chef and<br>
pupped got a mention -- cfengine is really lightweight especially if you<br>
don't bother with the file server bit, but all these seem like overkill<br>
for what you're asking for.<br>
<br>
If it's really only keys that you're worried about, then you could<br>
probably do worse than having all the machines pull from a git repo, and<br>
then have a script that cats lists of public keys into the relevant<br>
authorized_keys files on the basis of whatever criteria you fancy.  I'd<br>
have thought that you'd just need a few text files mapping machine names<br>
to classes, and classes to names for authorised users.<br>
<br>
For bonus points, make the script check for a GPG signed tag before<br>
trusting updates.<br>
<div class=""><br>
> - anyone got any recommendations? I'm not really looking for fully<br>
> fledged LDAP services or anything too heavyweight as the target<br>
> machines are locked down behind firewalls ( and draconian firewall<br>
> teams ) so only ssh is available to me.<br>
<br>
</div>The git repo can certainly be pushed out via ssh, or could be pulled<br>
regularly from central git repo(s) -- if you're pushing via git, you<br>
could do all the work in a post-update hook, and not need to bother with<br>
cron.<br>
<br>
Bonus points for ensuring that a broken update will not lock you out of<br>
all machines (or that a machine with a full disk will not delete all the<br>
keys and then have no room for the new files ... a create and move<br>
approach, with error checking everywhere should deal with that problem)<br>
<br>
BTW it's possible to list multiple URLs in a git remote, so you can<br>
define 'all_hosts' say, and when you push to that it'll go through all<br>
the URLs in sequence.<br>
<br>
The downside of using git is that all the remotes will have a full<br>
description of who's allowed to log into what, which might not be what<br>
you want, particularly if some of the hosts have poor physical security,<br>
say.<br>
<br>
Cheers, Phil.<br>
<span class="HOEnZb"><font color="#888888">--<br>
|)|  Philip Hands <a href="tel:%5B%2B44%20%280%2920%208530%209560" value="+442085309560">[+44 (0)20 8530 9560</a>]    <a href="http://www.hands.com/" target="_blank">http://www.hands.com/</a><br>
|-|  <a href="http://HANDS.COM" target="_blank">HANDS.COM</a> Ltd.                    <a href="http://ftp.uk.debian.org/" target="_blank">http://ftp.uk.debian.org/</a><br>
|(|  10 Onslow Gardens, South Woodford, London  E18 1NE  ENGLAND<br>
</font></span></blockquote></div><br></div>