Package: dsh
Version: 0.25.10-1
Severity: important

Passing key options to ssh does not seem to work.
It looks like dsh is first trying to login to the remote machine
and then run the options. This approach prevents the use of
ssh command keys, which are very useful when automating management
and still limiting access.

# grep -v ^# /etc/dsh/dsh.conf
verbose = 1
remoteshell = ssh  
showmachinenames = 0
waitshell=1  # whether to wait for execution
remoteshellopt=-i /root/.ssh/id_dsa_control

# dsh -m somemachine -- uptime
Setting verbose to  [1]
 Parameter remoteshell is ssh
Using ssh as the remote shell
 Parameter showmachinenames is 0
Setting pipe option to  [0]
 Parameter waitshell is 1
Setting wait-shell to  [1]
 Parameter remoteshellopt is -i /root/.ssh/id_dsa_control
Adding [-i /root/.ssh/id_dsa_control] to shell options
Loading config file /root/.dsh/dsh.conf
Adding machine somemachine to list
--- Executing on somemachine
DUMPing parameters passed to llexec
[-i /root/.ssh/id_dsa_control] [somemachine] [uptime]
... Waiting for process to end with waitpid
Warning: Identity file  /root/.ssh/id_dsa_control not accessible: No such file 
or directory.
r...@somemachine's password:

# ssh -i /root/.ssh/id_dsa_control somemachine
OpenSSH_4.7p1 Debian-12, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to somemachine [192.168.0.73] port 22.
debug1: Connection established.
...
debug1: Offering public key: /root/.ssh/id_dsa_control
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: read PEM private key done: type DSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_MESSAGES = en_US
debug1: Sending env LANG = en_US
Last login: Wed Apr 21 13:12:47 2010 from mymachine.cs.uchicago.edu
r...@somemachine:~#


Workaround:
Create ~/.ssh/config:
Host *
        IdentityFile ~/.ssh/id_dsa_control
This doesn't scale properly, because it's an all (*) or
per-host option, and has no information on the groups dsh provides.
Moreover, per the same problem as above, one cannot specify an
alternative ssh config file with the '-f' option.
Properly, the file should contain:
for machine in $dsh_group; do
        # write ssh config file parameters for each machine:
        Host $machine
                IdentityFile ~/.ssh/id_dsa_control
done

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages dsh depends on:
ii  libc6                         2.7-12     GNU C Library: Shared libraries
ii  libdshconfig1                 0.20.13-1  configuration file parser library 

dsh recommends no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to