aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-11-24 16:07:30 +0100
committerLudovic Courtès <ludo@gnu.org>2018-11-26 11:10:20 +0100
commit0c17f72070cbfb04f311b776a080849b369aac25 (patch)
treeafd951d7e74ad2f244659a1e921a65c3fbd98607
parent608d3dca89d73fe7260e97a284a8aeea756a3e11 (diff)
downloadguix-0c17f72070cbfb04f311b776a080849b369aac25.tar
guix-0c17f72070cbfb04f311b776a080849b369aac25.tar.gz
services: openssh: Install OpenSSH in the system profile.
This ensures one can scp to or from the GuixSD machine that uses the service. * gnu/services/ssh.scm (openssh-service-type)[extensions]: Add PROFILE-SERVICE-TYPE extension. * gnu/system/examples/bare-bones.tmpl <packages>: Remove OPENSSH. * doc/guix.texi (Using the Configuration System): Adjust accordingly.
-rw-r--r--doc/guix.texi6
-rw-r--r--gnu/services/ssh.scm10
-rw-r--r--gnu/system/examples/bare-bones.tmpl4
3 files changed, 14 insertions, 6 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index a2af1e9cbd..917a3e9d57 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -9727,9 +9727,9 @@ environment variable---in addition to the per-user profiles
provides all the tools one would expect for basic user and administrator
tasks---including the GNU Core Utilities, the GNU Networking Utilities,
the GNU Zile lightweight text editor, @command{find}, @command{grep},
-etc. The example above adds GNU@tie{}Screen and OpenSSH to those,
-taken from the @code{(gnu packages screen)} and @code{(gnu packages ssh)}
-modules (@pxref{Package Modules}). The
+etc. The example above adds GNU@tie{}Screen to those,
+taken from the @code{(gnu packages screen)}
+module (@pxref{Package Modules}). The
@code{(list package output)} syntax can be used to add a specific output
of a package:
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index 056602248f..bb94c5f41a 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -518,7 +518,15 @@ of user-name/file-like tuples."
(service-extension activation-service-type
openssh-activation)
(service-extension account-service-type
- (const %openssh-accounts))))
+ (const %openssh-accounts))
+
+ ;; Install OpenSSH in the system profile. That way,
+ ;; 'scp' is found when someone tries to copy to or from
+ ;; this machine.
+ (service-extension profile-service-type
+ (lambda (config)
+ (list (openssh-configuration-openssh
+ config))))))
(compose concatenate)
(extend extend-openssh-authorized-keys)
(default-value (openssh-configuration))))
diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl
index 889dcabe64..902dacbe57 100644
--- a/gnu/system/examples/bare-bones.tmpl
+++ b/gnu/system/examples/bare-bones.tmpl
@@ -3,7 +3,7 @@
(use-modules (gnu))
(use-service-modules networking ssh)
-(use-package-modules screen ssh)
+(use-package-modules screen)
(operating-system
(host-name "komputilo")
@@ -40,7 +40,7 @@
%base-user-accounts))
;; Globally-installed packages.
- (packages (cons* screen openssh %base-packages))
+ (packages (cons screen %base-packages))
;; Add services to the baseline: a DHCP client and
;; an SSH server.