[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: specifying identity file for scp within tramp
From: |
Barry Margolin |
Subject: |
Re: specifying identity file for scp within tramp |
Date: |
Mon, 22 Dec 2008 13:20:47 -0500 |
User-agent: |
MT-NewsWatcher/3.5.3b3 (Intel Mac OS X) |
In article
<a909c8b8-f6ee-4e4a-ab51-523b2408b192@35g2000pry.googlegroups.com>,
À¯×°×² <girzel@gmail.com> wrote:
> On Dec 22, 12:00 am, Barry Margolin <bar...@alum.mit.edu> wrote:
> > In article
> > <50944d4c-7190-41f4-90ec-17755ab0b...@k36g2000pri.googlegroups.com>,
> >
> >
> >
> > À¯×°×² <gir...@gmail.com> wrote:
> > > On Dec 20, 9:45 am, Barry Margolin <bar...@alum.mit.edu> wrote:
> > > > In article
> > > > <b4647b13-f390-48aa-9373-46192b1bb...@b41g2000pra.googlegroups.com>,
> >
> > > > À¯×°×² <gir...@gmail.com> wrote:
> > > > > On Dec 19, 1:38 pm, Barry Margolin <bar...@alum.mit.edu> wrote:
> > > > > > In article
> > > > > > <97c43290-2786-4b18-aaa8-429005829...@s9g2000prm.googlegroups.com>,
> >
> > > > > > À¯×°×² <gir...@gmail.com> wrote:
> > > > > > > Can anyone tell me if it's possible to direct tramp to use a
> > > > > > > particular set of ssh keys when connecting to a particular
> > > > > > > server? I'm
> > > > > > > trying to use scp with the equivalent of the -i option, what I
> > > > > > > tried
> > > > > > > below just seems to confuse tramp, is there some other way I
> > > > > > > should be
> > > > > > > doing this?
> >
> > > > > > > (add-to-list 'tramp-default-method-alist
> > > > > > > '("remote_server" "" "scp -i /Users/my_user/.ssh/
> > > > > > > my_key"))
> >
> > > > > > Why not use the IdentityFile directives in ~/.ssh/config?
> >
> > > > > I'm already using a set of keys for regular ssh login, and there's a
> > > > > passphrase on that set. I was trying to create a second set
> > > > > specifically for tramp to use, with no passphrase and restricted
> > > > > permissions on the server side. So far as I know, I can only provide
> > > > > a
> > > > > single IdentityFile per host in ssh/config -- do you know of any
> > > > > other
> > > > > ways to automatically distinguish the proper keys for tramp to use
> > > > > with my server?
> >
> > > > I think you have to define a new method.
> >
> > > > (defvar my-scp-extra-args '("-i" "/Users/my_user/.ssh/my_key"))
> > > > (let* ((scp-method (assoc "scp" tramp-methods))
> > > > (new-method (copy-tree (cdr scp-method)))
> > > > (login-args (assoc 'tramp-login-args new-method))
> > > > (copy-args (assoc 'tramp-copy-args new-method)))
> > > > (setf (cadr login-args)
> > > > `(,@my-scp-extra-args ,@(cadr login-args))
> > > > (cadr copy-args)
> > > > `(,@my-scp-extra-args ,@(cadr copy-args)))
> > > > (push `("myscp" . ,new-method) tramp-methods))
> >
> > > > Then set the default method for remote_server to "myscp".
> >
> > > Thanks for this! I'm going to ask a fairly stupid follow-up question.
> > > I put this in my emacs, but it raised this error "void variable tramp-
> > > methods". I thought maybe you had to quote tramp-methods, but after I
> > > did it started raising "Wrong type argument: listp, tramp-methods".
> > > I'm not quite sure where to go from here. If I'm running 22.3.1, I
> > > shouldn't have to have (require 'tramp) at the top of my .emacs,
> > > should I? I added that, for the heck of it, and it started complaining
> > > about other tramp-related variables being undefined elsewhere in
> > > my .emacs file.
> >
> > > Sorry to chump out, hoping for a little more help...
> >
> > You probably need to put:
> >
> > (load "tramp")
> >
> > before this, so that the variable will be defined. It's not normally
> > defined until tramp is auto-loaded.
>
> Turns out my main problem was reading the docs for tramp 2.1.14 while
> actually using tramp 2.0.9. Updated tramp and all is working, though I
> had to change these two lines
>
> `(,@my-scp-extra-args ,@(cadr login-args))
> `(,@my-scp-extra-args ,@(cadr copy-args)))
>
> to this
>
> `(,my-scp-extra-args ,@(cadr login-args))
> `(,my-scp-extra-args ,@(cadr copy-args)))
>
> Since login-args is supposed to be a list of lists. Not sure if that
> was the proper way to do it, but it works.
I have temp 2.0.58-pre, and login-args is just a list. Here's what the
two entries in tramp-methods look like:
("myscp"
(tramp-connection-function tramp-open-connection-rsh)
(tramp-login-program "ssh")
(tramp-copy-program "scp")
(tramp-remote-sh "/bin/sh")
(tramp-login-args
("-i" "/Users/my_user/.ssh/my_key" "-e" "none"))
(tramp-copy-args
("-i" "/Users/my_user/.ssh/my_key"))
(tramp-copy-keep-date-arg "-p")
(tramp-password-end-of-line nil))
("scp"
(tramp-connection-function tramp-open-connection-rsh)
(tramp-login-program "ssh")
(tramp-copy-program "scp")
(tramp-remote-sh "/bin/sh")
(tramp-login-args
("-e" "none"))
(tramp-copy-args nil)
(tramp-copy-keep-date-arg "-p")
(tramp-password-end-of-line nil))
--
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***