From 615c5298f705c040068c363c45ed379f7c2b5319 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 21 Apr 2017 18:44:59 +0200 Subject: ssh: Move 'open-ssh-session' to (guix ssh). * guix/scripts/copy.scm (%compression, open-ssh-session): Move to... * guix/ssh.scm: ... here. Use '&message' conditions instead of calling 'leave'. --- guix/scripts/copy.scm | 41 +---------------------------------------- 1 file changed, 1 insertion(+), 40 deletions(-) (limited to 'guix/scripts') diff --git a/guix/scripts/copy.scm b/guix/scripts/copy.scm index 624ef73e96..bc225044fb 100644 --- a/guix/scripts/copy.scm +++ b/guix/scripts/copy.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,9 +25,6 @@ (define-module (guix scripts copy) #:use-module (guix derivations) #:use-module (guix scripts build) #:use-module ((guix scripts archive) #:select (options->derivations+files)) - #:use-module (ssh session) - #:use-module (ssh auth) - #:use-module (ssh key) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-37) @@ -40,42 +37,6 @@ (define-module (guix scripts copy) ;;; Exchanging store items over SSH. ;;; -(define %compression - "zlib@openssh.com,zlib") - -(define* (open-ssh-session host #:key user port) - "Open an SSH session for HOST and return it. When USER and PORT are #f, use -default values or whatever '~/.ssh/config' specifies; otherwise use them. -Throw an error on failure." - (let ((session (make-session #:user user - #:host host - #:port port - #:timeout 10 ;seconds - ;; #:log-verbosity 'protocol - - ;; We need lightweight compression when - ;; exchanging full archives. - #:compression %compression - #:compression-level 3))) - - ;; Honor ~/.ssh/config. - (session-parse-config! session) - - (match (connect! session) - ('ok - ;; Use public key authentication, via the SSH agent if it's available. - (match (userauth-public-key/auto! session) - ('success - session) - (x - (disconnect! session) - (leave (_ "SSH authentication failed for '~a': ~a~%") - host (get-error session))))) - (x - ;; Connection failed or timeout expired. - (leave (_ "SSH connection to '~a' failed: ~a~%") - host (get-error session)))))) - (define (ssh-spec->user+host+port spec) "Parse SPEC, a string like \"user@host:port\" or just \"host\", and return three values: the user name (or #f), the host name, and the TCP port -- cgit v1.2.3