'Extracts keyword/value settings from the sshd config.
The keyword is always the first string item.
Values are the remainder of the string. In cases where an sshd config
allows multiple values, these are split according to whatever separator(s)
sshd_config permits for that value.
Keywords and values are normalized. Keywords are converted to lowercase.
Values are converted into integers, booleans or strings. Strings are always
lowercased.
Args:
line: A line of the configuration file.'

def ParseLine(self, line):

    kv = line.split(None, 1)
    keyword = kv[0].lower()
    values = (kv[1:] or [''])
    separators = self._repeated.get(keyword)
    if separators:
        repeated = []
        for v in values:
            repeated.extend(re.split(separators, v))
        values = [v for v in repeated if v]
    if (keyword in self._integers):
        values = [int(v) for v in values]
    elif (keyword in self._booleans):
        values = [(v.lower() in self._true) for v in values]
    else:
        values = [v.lower() for v in values]
    if (keyword not in self._repeated):
        values = values[0]
    if (keyword == 'match'):
        self._NewMatchSection(values)
    if (keyword in self._aliases):
        keyword = self._aliases[keyword]
    self.processor(keyword, values)
