/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to mandos-monitor

  • Committer: Teddy Hogeborn
  • Date: 2024-11-24 00:44:25 UTC
  • Revision ID: teddy@recompile.se-20241124004425-6k3y0ir1ksyjq3c4
mandos-keygen: Show warning about old OpenSSH versions

When generating a config file snippet on the Mandos client system
using mandos-keygen, and the default ssh-keyscan checker is used, and
if the OpenSSH version is 9.8 or later, the "checker" command
generated for the config file on the Mandos server will include the
"-q" option for ssh-keyscan.  This option did not exist on ssh-keyscan
from OpenSSH older than version 9.8.  Therefore, if the Mandos
*server* is running an older version of OpenSSH, where ssh-keyscan
does not support the "-q" option, this option must be removed from the
generated "checker" setting.  Since we cannot know if this is the case
when running mandos-keygen on the Mandos client system, we print this
information as a comment above the generated "checker" setting.

* mandos-keygen: Show warning if the new "-q" options was used with
  ssh-keyscan in the generated "checker" setting.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#
24
24
# Contact the authors at <mandos@recompile.se>.
25
25
#
26
 
 
27
26
from __future__ import (division, absolute_import, print_function,
28
27
                        unicode_literals)
 
28
 
29
29
try:
30
30
    from future_builtins import *
31
31
except ImportError:
32
32
    pass
33
33
 
34
34
import sys
 
35
import logging
35
36
import os
36
37
import warnings
37
38
import datetime
38
39
import locale
39
 
import logging
40
40
 
41
41
import urwid.curses_display
42
42
import urwid
49
49
if sys.version_info.major == 2:
50
50
    __metaclass__ = type
51
51
    str = unicode
 
52
    input = raw_input
 
53
 
 
54
# Show warnings by default
 
55
if not sys.warnoptions:
 
56
    warnings.simplefilter("default")
52
57
 
53
58
log = logging.getLogger(os.path.basename(sys.argv[0]))
54
59
logging.basicConfig(level="NOTSET", # Show all messages
59
64
locale.setlocale(locale.LC_ALL, "")
60
65
 
61
66
logging.getLogger("dbus.proxies").setLevel(logging.CRITICAL)
 
67
logging.getLogger("urwid").setLevel(logging.INFO)
62
68
 
63
69
# Some useful constants
64
70
domain = "se.recompile"
65
71
server_interface = domain + ".Mandos"
66
72
client_interface = domain + ".Mandos.Client"
67
 
version = "1.8.11"
 
73
version = "1.8.17"
68
74
 
69
75
try:
70
76
    dbus.OBJECT_MANAGER_IFACE
122
128
        self.property_changed_match.remove()
123
129
 
124
130
 
125
 
class MandosClientWidget(urwid.FlowWidget, MandosClientPropertyCache):
 
131
class MandosClientWidget(MandosClientPropertyCache, urwid.Widget):
126
132
    """A Mandos Client which is visible on the screen.
127
133
    """
128
134
 
 
135
    _sizing = frozenset(["flow"])
 
136
 
129
137
    def __init__(self, server_proxy_object=None, update_hook=None,
130
138
                 delete_hook=None, **kwargs):
131
139
        # Called on update
220
228
 
221
229
    def selectable(self):
222
230
        """Make this a "selectable" widget.
223
 
        This overrides the method from urwid.FlowWidget."""
 
231
        This overrides the method from urwid.Widget."""
224
232
        return True
225
233
 
226
234
    def rows(self, maxcolrow, focus=False):
227
235
        """How many rows this widget will occupy might depend on
228
236
        whether we have focus or not.
229
 
        This overrides the method from urwid.FlowWidget"""
 
237
        This overrides the method from urwid.Widget"""
230
238
        return self.current_widget(focus).rows(maxcolrow, focus=focus)
231
239
 
232
240
    def current_widget(self, focus=False):
324
332
 
325
333
    def render(self, maxcolrow, focus=False):
326
334
        """Render differently if we have focus.
327
 
        This overrides the method from urwid.FlowWidget"""
 
335
        This overrides the method from urwid.Widget"""
328
336
        return self.current_widget(focus).render(maxcolrow,
329
337
                                                 focus=focus)
330
338
 
331
339
    def keypress(self, maxcolrow, key):
332
340
        """Handle keys.
333
 
        This overrides the method from urwid.FlowWidget"""
 
341
        This overrides the method from urwid.Widget"""
334
342
        if key == "+":
335
343
            self.proxy.Set(client_interface, "Enabled",
336
344
                           dbus.Boolean(True), ignore_reply=True,