From ef3f38ea0027f48feb6a29df131ac58bfbb46b7d Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Sun, 20 Jun 2021 15:15:55 +0200 Subject: [PATCH] services: openssh: Replace 'without-password' by 'prohibit-password'. For some time, OpenSSH's option 'PermitRootLogin' has deprecated the ambiguous argument 'without-password' with 'prohibit-password'. * doc/guix.texi (Network Services): Replace 'without-password by 'prohibit-password. * gnu/machine/digital-ocean.scm (guix-infect): Change system configuration to use 'prohibit-password. * gnu/services/ssh.scm (openssh-configuration): Change comment to use 'prohibit-password. (openssh-config-file): Add support for 'prohibit-password to 'permit-root-login'. Warn about deprecated 'without-password usage. * gnu/tests/ganeti.scm (%ganeti-os): Replace 'without-password by 'prohibit-password. Signed-off-by: Tobias Geerinckx-Rice --- doc/guix.texi | 6 +++--- gnu/machine/digital-ocean.scm | 3 ++- gnu/services/ssh.scm | 11 +++++++++-- gnu/tests/ganeti.scm | 3 ++- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index efeb176e3d..66c6adc4f5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -17070,7 +17070,7 @@ shell daemon, @command{sshd}. Its value must be an (service openssh-service-type (openssh-configuration (x11-forwarding? #t) - (permit-root-login 'without-password) + (permit-root-login 'prohibit-password) (authorized-keys `(("alice" ,(local-file "alice.pub")) ("bob" ,(local-file "bob.pub")))))) @@ -17104,7 +17104,7 @@ TCP port on which @command{sshd} listens for incoming connections. @item @code{permit-root-login} (default: @code{#f}) This field determines whether and when to allow logins as root. If @code{#f}, root logins are disallowed; if @code{#t}, they are allowed. -If it's the symbol @code{'without-password}, then root logins are +If it's the symbol @code{'prohibit-password}, then root logins are permitted but not with password-based authentication. @item @code{allow-empty-passwords?} (default: @code{#f}) @@ -29333,7 +29333,7 @@ cluster node that supports multiple storage backends, and installs the ;; Ganeti uses SSH to communicate between nodes. (service openssh-service-type (openssh-configuration - (permit-root-login 'without-password))) + (permit-root-login 'prohibit-password))) (service ganeti-service-type (ganeti-configuration diff --git a/gnu/machine/digital-ocean.scm b/gnu/machine/digital-ocean.scm index 82383a8c7c..d97c300d18 100644 --- a/gnu/machine/digital-ocean.scm +++ b/gnu/machine/digital-ocean.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Jakob L. Kreuze +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -256,7 +257,7 @@ cat > /etc/bootstrap-config.scm << EOF (service openssh-service-type (openssh-configuration (log-level 'debug) - (permit-root-login 'without-password)))) + (permit-root-login 'prohibit-password)))) %base-services))) EOF # guix pull diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 1891db0487..a018052eeb 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -6,6 +6,8 @@ ;;; Copyright © 2019 Ricardo Wurmus ;;; Copyright © 2020 pinoaffe ;;; Copyright © 2020 Oleg Pykhalov +;;; Copyright © 2020 Brice Waegeneire +;;; Copyright © 2021 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +32,7 @@ #:use-module (gnu services web) #:use-module (gnu system pam) #:use-module (gnu system shadow) + #:use-module (guix deprecation) #:use-module (guix gexp) #:use-module (guix records) #:use-module (guix modules) @@ -288,7 +291,7 @@ The other options should be self-descriptive." ;; integer (port-number openssh-configuration-port-number (default 22)) - ;; Boolean | 'without-password + ;; Boolean | 'prohibit-password (permit-root-login openssh-configuration-permit-root-login (default #f)) ;; Boolean @@ -441,7 +444,11 @@ of user-name/file-like tuples." #$(match (openssh-configuration-permit-root-login config) (#t "yes") (#f "no") - ('without-password "without-password"))) + ('without-password (warn-about-deprecation + 'without-password #f + #:replacement 'prohibit-password) + "prohibit-password") + ('prohibit-password "prohibit-password"))) (format port "PermitEmptyPasswords ~a\n" #$(if (openssh-configuration-allow-empty-passwords? config) "yes" "no")) diff --git a/gnu/tests/ganeti.scm b/gnu/tests/ganeti.scm index ff853a7149..19c26b86dd 100644 --- a/gnu/tests/ganeti.scm +++ b/gnu/tests/ganeti.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Marius Bakke . +;;; Copyright © 2020 Brice Waegeneire ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,7 +66,7 @@ (service openssh-service-type (openssh-configuration - (permit-root-login 'without-password))) + (permit-root-login 'prohibit-password))) (service ganeti-service-type (ganeti-configuration