45 lines
2.0 KiB
Diff
45 lines
2.0 KiB
Diff
Index: cloud-init-fedora/cloudinit/CloudConfig/cc_set_passwords.py
|
|
===================================================================
|
|
--- cloud-init-fedora.orig/cloudinit/CloudConfig/cc_set_passwords.py
|
|
+++ cloud-init-fedora/cloudinit/CloudConfig/cc_set_passwords.py
|
|
@@ -104,7 +104,7 @@ def handle(name,cfg,cloud,log,args):
|
|
errors.append(e)
|
|
|
|
try:
|
|
- p = util.subp(['service', 'ssh', 'restart'])
|
|
+ p = util.subp(['service', cfg.get('ssh_svcname', 'ssh'), 'restart'])
|
|
log.debug("restarted sshd")
|
|
except:
|
|
log.warn("restart of ssh failed")
|
|
Index: cloud-init-fedora/cloudinit/CloudConfig/cc_ssh.py
|
|
===================================================================
|
|
--- cloud-init-fedora.orig/cloudinit/CloudConfig/cc_ssh.py
|
|
+++ cloud-init-fedora/cloudinit/CloudConfig/cc_ssh.py
|
|
@@ -31,9 +31,10 @@ def handle(name,cfg,cloud,log,args):
|
|
global_log = log
|
|
|
|
# remove the static keys from the pristine image
|
|
- for f in glob.glob("/etc/ssh/ssh_host_*key*"):
|
|
- try: os.unlink(f)
|
|
- except: pass
|
|
+ if cfg.get("ssh_deletekeys", True):
|
|
+ for f in glob.glob("/etc/ssh/ssh_host_*key*"):
|
|
+ try: os.unlink(f)
|
|
+ except: pass
|
|
|
|
if cfg.has_key("ssh_keys"):
|
|
# if there are keys in cloud-config, use them
|
|
@@ -63,8 +64,10 @@ def handle(name,cfg,cloud,log,args):
|
|
# if not, generate them
|
|
for keytype in util.get_cfg_option_list_or_str(cfg, 'ssh_genkeytypes',
|
|
['rsa', 'dsa', 'ecdsa']):
|
|
- subprocess.call(['ssh-keygen', '-t', keytype, '-N', '',
|
|
- '-f', '/etc/ssh/ssh_host_%s_key' % keytype])
|
|
+ keyfile = '/etc/ssh/ssh_host_%s_key' % keytype
|
|
+ if not os.path.exists(keyfile):
|
|
+ subprocess.call(['ssh-keygen', '-t', keytype, '-N', '',
|
|
+ '-f', keyfile])
|
|
|
|
util.restorecon_if_possible('/etc/ssh', recursive=True)
|
|
|