Request: Configurable session timeout / “Remember this browser” for GL.iNet KVM login

Hi GL.iNet team,

Currently, I need to enter the password again after the session expires, which is pretty annoying. I tried using browser password managers, but the login page does not seem to autofill reliably. This is a KVM device that I may open many times during the day, repeatedly typing the admin password becomes frustrating.

I understand that an IP KVM is a sensitive device and should be protected. I’m not asking to remove security. But it would be very helpful to have one or more of the following options:

  1. Configurable session timeout
    Allow users to choose the web UI session duration, for example:

    • 30 minutes

    • 2 hours

    • 8 hours

    • 24 hours

    • 7 days

    • Until browser logout / manual logout

  2. “Remember this browser” / “Stay signed in” option
    The device could store a long-lived token for the current browser only, and invalidate it when:

    • the user clicks Log out

    • the admin password is changed

    • the firmware is reset

    • the token expires

This would keep the device secure while making daily use much more convenient.

Would the team consider adding this feature in a future firmware update?

Thanks!

Such changes would not be made. Regulations in certain regions require us to do so, and even offering an option is not permitted.

cat > /etc/kvmd/override.yaml << EOF
kvmd:
    auth:
        expire: 43200
EOF

You can change it by command, but we probably won't provide any options for modifying that in website.

And here is the content of the file before rebooting the device

I got another problem, after altered the override.yaml and reboot the KVM, the device stop working. It stay on the Connecting to device... page forever. Unplug the power and reboot the device won’t fix it.

Access with an android device reports a Failed to get device environment error.

Problem solved. I’ll post my steps here if it could help any one else

  • Don’t use the command posted above, use this instead printf 'kvmd:\n auth:\n expire: 43200\n' > /etc/kvmd/override.yaml.

If the KVM not correctly running, use any SSH client to connect to the KVM.

    • IP address is the ip address
    • Port is 22, the default SSH port
    • username is root
    • password is the password we login each time
  • Check the state by running /etc/init.d/S98kvmd status. Check the status

  • If the status is stop, try /etc/init.d/S98kvmd restart or /usr/sbin/kvmd to manually boot it. The second is recommanded cause it will tell you the reason. I got an error saying:

[root@glkvm:~]# /usr/sbin/kvmd
/usr/lib/python3.12/site-packages/kvmd/apps/kvmd/ocr.py:100: RuntimeWarning: Can't load libtesseract: Can't find libtesseract
ConfigError: Cannot read config file '/etc/kvmd/main.yaml':
ValueError: Invalid YAML in the file '/etc/kvmd/main.yaml':
ValueError: Invalid YAML in the file '/etc/kvmd/override.yaml':
ScannerError: while scanning for the next token
found character '\t' that cannot start any token
in "/etc/kvmd/override.yaml", line 2, column 1

Which means we can’t use tab in the yaml file. We need to use space instead.

That’s the reason why we should use printf 'kvmd:\n auth:\n expire: 43200\n' > /etc/kvmd/override.yaml. Please note that there is no tab but space in it.

Okay, feel free now to update the time to any number, say, 4320000 seconds for 500 days. Should be more than enough.

And thanks for the help @minmie . Please update your command to avoid the tab/space issue so the next one can correctly set it in one go.

1 Like

Ahhhh, f*k YAML.

i’m sorry for that