summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2015-11-20 09:35:43 +0100
committerJan Cholasta <jcholast@redhat.com>2015-11-20 12:29:04 +0100
commit2d041daf17a4c461489cdd0879056d0cb5eacde5 (patch)
tree348ae80273aae9217f3446937e6af86e84507b66
parent7f0d018c66da1fe2adedd45aa9f5a63c913e4527 (diff)
client install: do not corrupt OpenSSH config with Match sections
https://fedorahosted.org/freeipa/ticket/5461 Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
-rwxr-xr-xipa-client/ipa-install/ipa-client-install8
1 files changed, 6 insertions, 2 deletions
diff --git a/ipa-client/ipa-install/ipa-client-install b/ipa-client/ipa-install/ipa-client-install
index 3011d25f3..05a550b11 100755
--- a/ipa-client/ipa-install/ipa-client-install
+++ b/ipa-client/ipa-install/ipa-client-install
@@ -1332,6 +1332,7 @@ def change_ssh_config(filename, changes, sections):
section_keys = tuple(key.lower() for key in sections)
lines = []
+ in_section = False
for line in f:
line = line.rstrip('\n')
pline = line.strip()
@@ -1340,7 +1341,7 @@ def change_ssh_config(filename, changes, sections):
continue
option = pline.split()[0].lower()
if option in section_keys:
- lines.append(line)
+ in_section = True
break
if option in change_keys:
line = '#' + line
@@ -1348,6 +1349,9 @@ def change_ssh_config(filename, changes, sections):
for option, value in changes.items():
if value is not None:
lines.append('%s %s' % (option, value))
+ if in_section:
+ lines.append('')
+ lines.append(line)
for line in f:
line = line.rstrip('\n')
lines.append(line)
@@ -1388,7 +1392,7 @@ def configure_ssh_config(fstore, options):
changes['VerifyHostKeyDNS'] = 'yes'
changes['HostKeyAlgorithms'] = 'ssh-rsa,ssh-dss'
- change_ssh_config(ssh_config, changes, ['Host'])
+ change_ssh_config(ssh_config, changes, ['Host', 'Match'])
root_logger.info('Configured %s', ssh_config)
def configure_sshd_config(fstore, options):