Description: Disable both ssh.socket and ssh.service The sharing dialog gives a false sense of security, by disabling the socket-activated ssh.service, making the switch ineffective since any connection causes the service to re-activate. Author: Zygmunt Krynicki Bug-Ubuntu: https://bugs.launchpad.net/bugs/2039577 Last-Update: 2023-10-17 --- gnome-control-center-45.0.orig/panels/sharing/cc-remote-login-helper.c +++ gnome-control-center-45.0/panels/sharing/cc-remote-login-helper.c @@ -24,6 +24,9 @@ #ifndef SSHD_SERVICE #define SSHD_SERVICE "sshd.service" #endif +#ifndef SSH_SOCKET +#define SSH_SOCKET "ssh.socket" +#endif int main (int argc, @@ -39,29 +42,37 @@ main (int argc, { g_autoptr(GError) error = NULL; - if (!cc_enable_service (SSHD_SERVICE, G_BUS_TYPE_SYSTEM, &error)) + if (!cc_enable_service (SSH_SOCKET, G_BUS_TYPE_SYSTEM, &error)) { - g_critical ("Failed to enable %s: %s", SSHD_SERVICE, error->message); + g_critical ("Failed to enable %s: %s", SSH_SOCKET, error->message); return EXIT_FAILURE; } - else + + if (!cc_enable_service (SSHD_SERVICE, G_BUS_TYPE_SYSTEM, &error)) { - return EXIT_SUCCESS; + g_critical ("Failed to enable %s: %s", SSHD_SERVICE, error->message); + return EXIT_FAILURE; } + + return EXIT_SUCCESS; } else if (g_str_equal (argv[1], "disable")) { g_autoptr(GError) error = NULL; - if (!cc_disable_service (SSHD_SERVICE, G_BUS_TYPE_SYSTEM, &error)) + if (!cc_disable_service (SSH_SOCKET, G_BUS_TYPE_SYSTEM, &error)) { - g_critical ("Failed to enable %s: %s", SSHD_SERVICE, error->message); + g_critical ("Failed to enable %s: %s", SSH_SOCKET, error->message); return EXIT_FAILURE; } - else + + if (!cc_disable_service (SSHD_SERVICE, G_BUS_TYPE_SYSTEM, &error)) { - return EXIT_SUCCESS; + g_critical ("Failed to enable %s: %s", SSHD_SERVICE, error->message); + return EXIT_FAILURE; } + + return EXIT_SUCCESS; } return 1;