summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2005-03-02 20:15:52 +0000
committerNarayan Desai <desai@mcs.anl.gov>2005-03-02 20:15:52 +0000
commitc0f575ef2fa5332a92293f198841333bdad75647 (patch)
tree84b121b692428eafff7708a478941fa0c787500a
parentb5f71d42d23de90a6e1337715b3c4bcd482b6216 (diff)
downloadbcfg2-c0f575ef2fa5332a92293f198841333bdad75647.tar.gz
bcfg2-c0f575ef2fa5332a92293f198841333bdad75647.tar.bz2
bcfg2-c0f575ef2fa5332a92293f198841333bdad75647.zip
switch to all dynamic ssh_known_hosts generation (don't use
repo/ssh_known_hosts as a base) (Logical change 1.208) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@886 ce84e21b-d406-0410-9b95-82705330c041
-rw-r--r--src/lib/Server/Generators/SSHbase.py28
1 files changed, 6 insertions, 22 deletions
diff --git a/src/lib/Server/Generators/SSHbase.py b/src/lib/Server/Generators/SSHbase.py
index 7c0a015f4..7b6a49494 100644
--- a/src/lib/Server/Generators/SSHbase.py
+++ b/src/lib/Server/Generators/SSHbase.py
@@ -3,7 +3,6 @@ __revision__ = '$Revision$'
from binascii import b2a_base64
from os import rename, system
-from socket import gethostbyname, gaierror
from Bcfg2.Server.Generator import Generator, DirectoryBacked
@@ -49,13 +48,11 @@ class SSHbase(Generator):
def build_skn(self, entry, metadata):
'''This function builds builds a host specific known_hosts file'''
client = metadata.hostname
- filedata = self.repository.entries['ssh_known_hosts'].data
- try:
- for hostkey in [keytmpl % client for keytmpl in self.pubkeys]:
- filedata += "localhost,localhost.localdomain,127.0.0.1 %s" % (
- self.repository.entries[hostkey].data)
- except gaierror:
- self.LogError("DNS lookup failed for client %s" % client)
+ filedata = "".join([info.data for (filename, info) in self.repository.entries.iteritems()
+ if ".pub" in filename])
+ for hostkey in [keytmpl % client for keytmpl in self.pubkeys]:
+ filedata += "localhost,localhost.localdomain,127.0.0.1 %s" % (
+ self.repository.entries[hostkey].data)
entry.attrib.update({'owner':'root', 'group':'root', 'perms':'0644'})
entry.text = filedata
@@ -65,7 +62,7 @@ class SSHbase(Generator):
filename = "%s.H_%s" % (entry.get('name').split('/')[-1], client)
if filename not in self.repository.entries.keys():
self.GenerateHostKeys(client)
- self.GenerateKnownHosts()
+ #self.GenerateKnownHosts()
keydata = self.repository.entries[filename].data
perms = '0600'
if entry.get('name')[-4:] == '.pub':
@@ -76,19 +73,6 @@ class SSHbase(Generator):
entry.attrib['encoding'] = 'base64'
entry.text = b2a_base64(keydata)
- def GenerateKnownHosts(self):
- '''Build the static portion of known_hosts (for all hosts)'''
- output = ''
- for filename, entry in self.repository.entries.iteritems():
- if ".pub.H_" in filename:
- hname = filename.split('_')[-1]
- try:
- ipaddr = gethostbyname(hname)
- output += "%s,%s.mcs.anl.gov,%s %s" % (hname, hname, ipaddr, entry.data)
- except gaierror:
- continue
- self.repository.entries['ssh_known_hosts'].data = output
-
def GenerateHostKeys(self, client):
'''Generate new host keys for client'''
keylist = [keytmpl % client for keytmpl in self.hostkeys]