From 8c8687407057ca9caa123905f7ca2e3feeffa203 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 8 Sep 2016 14:09:28 +0200 Subject: [PATCH] gnu: Add lsh-seed, lsh-service: use it. --- gnu/packages/ssh.scm | 26 ++++++++++++++++++++++++++ gnu/services/ssh.scm | 7 +++++++ 2 files changed, 33 insertions(+) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index b2612a4..5255848 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -517,3 +517,29 @@ manipulating key files.") authentication with SSH's so-called @dfn{interactive keyboard password authentication}.") (license license:gpl2+))) + +(use-modules (guix build-system trivial)) +(define-public lsh-seed + (package + (name "lsh-seed") + (version "0") + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((source (assoc-ref %build-inputs "source")) + (out (assoc-ref %outputs "out")) + (etc (string-append out "/etc")) + (seed (string-append etc "/lsh-seed"))) + (mkdir-p etc) + (with-output-to-file seed + (lambda () (display "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"))) + (chmod seed #o400) + #t)))) + (home-page "http://localhost") + (synopsis "lsh-seed") + (description "lsh-seed") + (license license:gpl3+))) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 462988c..96ba3d7 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -68,6 +68,13 @@ (define (lsh-initialization lsh host-key) "Return the gexp to initialize the LSH service for HOST-KEY." #~(begin + + (unless (file-exists? #$%yarrow-seed) + (when (file-exists? #$lsh-seed) + (mkdir-p (dirname #$%yarrow-seed)) + (copy-file (string-append #$lsh-seed "/etc/lsh-seed") #$%yarrow-seed) + (chmod #$%yarrow-seed #o400))) + (unless (file-exists? #$%yarrow-seed) (system* (string-append #$lsh "/bin/lsh-make-seed") "--sloppy" "-o" #$%yarrow-seed)) -- 2.9.3