Can cron run ssh commands?

Nathan Barham nathan@sleepygeek.com
Wed Nov 6 12:07:00 GMT 2002


Thanks for the reply,

I don't have ssmtp set up yet, so I took your suggestion and tried redirecting
"env" and "ssh -v" output to a file.  Actually I did this both from the
Administrator's command line, and from the Administrator's crontab creating two
seperate files (attached) so I could compare.

  From the command line I ran these two commands:

/usr/bin/env > testcron.admin.txt
ssh -v baby ls 2>> testcron.admin.txt

  From Administrator's crontab I did this:

34 08 * * * /usr/bin/env > testcron.cron.txt
36 08 * * * ssh -v baby ls 2>> testcron.cron.txt

In comparing the output for the env command, I see that Administrator's
environment contains more environmet varibales, most notably those created by
ssh-agent, which is started by keychain in Administrator's ~/.bash_profile

SSH_AGENT_PID=517
SSH_AUTH_SOCK=/tmp/ssh-AhbAu553/agent.553

I also note that the $PATH variable for Administrator is prepended with Cygwin's
/usr/local/bin:/usr/bin:/usr/sbin: while it is *not* in the cron/system
environment. i.e.

For Administrator:
PATH=/usr/local/bin:/usr/bin:/usr/sbin:/c/WINNT/system32:/c/WINNT: etc...

For cron/system:
PATH=/c/WINNT/system32:/c/WINNT: etc ...

I'm assuming this is not the culprit however, since the ssh command *is* found
even though the full path to it is not provided in the crontab.  Is this because
the Administrator's $PATH is being used due to context switching?

In comparing the debug output from ssh -v, I see that when run from the command
line as Administrator, publickey auth succeeds, but fails when run from cron.  i.e.

# From command line:
#
debug1: authentications that can continue: publickey,password,keyboard-interactive
debug1: next auth method to try is publickey
debug1: userauth_pubkey_agent: testing agent key /home/Administrator/.ssh/id_rsa
debug1: input_userauth_pk_ok: pkalg ssh-rsa blen 149 lastkey 0x100cdae0 hint -1
debug1: ssh-userauth2 successful: method publickey
debug1: fd 6 setting O_NONBLOCK
debug1: channel 0: new [client-session]
debug1: send channel open 0
debug1: Entering interactive session.

# From cron:
#
debug1: authentications that can continue: publickey,password,keyboard-interactive
debug1: next auth method to try is publickey
debug1: try privkey: /home/Administrator/.ssh/identity
debug1: try pubkey: /home/Administrator/.ssh/id_rsa
debug1: input_userauth_pk_ok: pkalg ssh-rsa blen 149 lastkey 0x100c4548 hint 1
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>

It seems to me (in my newbie terminlogy) that either the cron/system environment
needs to become aware of and use the Administrator's public key via
Administrator's SSH_AGENT and SSH_AUTH_SOCK env variables, or that the SYSTEM
user needs to have it's own public key avalable for use.  I don't know how to
proceed along either of these paths.  Any help is much appreciated.



Harig, Mark A. wrote:
 > Of course, a simpler alternative to setting up
 > 'ssmtp' with cron would be to write your
 > cron job to redirect the output of 'ssh -v ...'
 > to a file.
 >
 >
 >>-----Original Message-----
 >>From: Harig, Mark A.
 >>Sent: Tuesday, November 05, 2002 3:40 PM
 >>To: nathan@sleepygeek.com; cygwin@cygwin.com
 >>Subject: RE: Can cron run ssh commands?
 >>
 >>
 >>
 >>Try adding '-v' to your ssh command in your cron job.
 >>This assumes that you have cron's integration with
 >>email working.  If you don't have the 'ssmtp' package
 >>installed (via setup.exe), then you'll want to do that
 >>so that any output is emailed to you.
 >>
 >>See: /usr/doc/Cygwin/
 >>                     cron.README
 >>                     ssmtp-<version>.README
 >>
 >>Of course, you should probably start with a simpler
 >>cron job, say, the output of '/usr/bin/env' so that
 >>you can see what cron thinks its environment is.
 >>
 >>
 >>
 >>>-----Original Message-----
 >>>From: Nathan Barham [mailto:nathan@sleepygeek.com]
 >>>Sent: Tuesday, November 05, 2002 3:09 PM
 >>>To: cygwin@cygwin.com
 >>>Subject: Can cron run ssh commands?
 >>>
 >>>
 >>>Hello all,
 >>>
 >>>I'm trying to use Cygwin to rsync between an NT 4 server and
 >>>a Win2K server,
 >>>using the "-e ssh" option to rsync.  It works beautifully at
 >>>the command line
 >>>like this:
 >>>
 >>>rsync -e ssh -trzv --delete /d/winapps/
 >>
 >>Administrator@baby:/c/winapps
 >>
 >>>My problem is that this won't work from cron, nor will any of
 >>>the other Openssh
 >>>tools (scp, ssh etc).  I have Cygwin sshd running as
 >>>Administrator on the remote
 >>>W2K box, i.e.*without* privsep.  I have Cygwin cron running
 >>>as SYSTEM on the
 >>>local NT 4 box.  I've tested cron and it works except for ssh
 >>>stuff.  I also
 >>>have ssh-agent loaded on the local box (via keychain), and I
 >>>can ssh to the
 >>>remote box as Administrator without typing a passphrase.
 >>>
 >>>I'm pretty sure my problem is related to permissions of the
 >>>SYSTEM user and/or
 >>>the switching of user context, but I can't figure out what to
 >>>change.  I've read
 >>>the user guide and FAQ, googled, and searched the mail
 >>>archives, but if it's
 >>>there I'm missing it.  Has anyone out there managed to
 >>>automate ssh commands
 >>>from cron?  If so can you please enlighten me, or at least
 >>>kick me in the
 >>>direction of self-enlightment?
 >>>
 >>>cygcheck stuff for each machine is attached.
 >>>
 >>>Thanks tons for any help.
 >>>
 >>>Nathan Barham
 >>>
 >>
 >>--
 >>Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
 >>Bug reporting:         http://cygwin.com/bugs.html
 >>Documentation:         http://cygwin.com/docs.html
 >>FAQ:                   http://cygwin.com/faq/
 >>
 >>
 >
 >
 > --
 > Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
 > Bug reporting:         http://cygwin.com/bugs.html
 > Documentation:         http://cygwin.com/docs.html
 > FAQ:                   http://cygwin.com/faq/
 >


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: testcron.admin.txt
URL: <http://cygwin.com/pipermail/cygwin/attachments/20021106/61801a0c/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: testcron.cron.txt
URL: <http://cygwin.com/pipermail/cygwin/attachments/20021106/61801a0c/attachment-0001.txt>
-------------- next part --------------
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


More information about the Cygwin mailing list