Provided by: htcondor_8.0.5~dfsg.1-1ubuntu1_amd64 bug

Name

       condor_ssh_to_job create - an ssh session to a running job

Synopsis

       condor_ssh_to_job [-help]

       condor_ssh_to_job[-debug]  [-name schedd-name] [-pool pool-name] [-ssh ssh-command] [-keygen-options ssh-
       keygen-options]   [-shells   shell1,shell2,...]   [-auto-retry]    [-remove-on-interrupt]    cluster    |
       cluster.process | cluster.process.node [remote-command]

Description

       condor_ssh_to_jobcreates  an sshsession to a running job. The job is specified with the argument. If only
       the job clusterid is given, then the job processid defaults to the value 0.

       It is available in Unix HTCondor distributions, and it works for vanilla, vm, java, local,  and  parallel
       universe  jobs.  The  user  must  be  the  owner  of  the job or must be a queue super user, and both the
       condor_scheddand  condor_starterdaemons  must  allow  condor_ssh_to_jobaccess.  If  no   remote-commandis
       specified,  an  interactive shell is created. An alternate sshprogram such as sftpmay be specified, using
       the -sshoption for uploading and downloading files.

       The remote command or shell runs with the same user id as the running job, and it is initialized with the
       same working directory. The environment is initialized to be the same  as  that  of  the  job,  plus  any
       changes  made  by  the  shell  setup  scripts  and  any environment variables passed by the sshclient. In
       addition, the environment variable  _CONDOR_JOB_PIDS is defined. It is a  space-separated  list  of  PIDs
       associated  with the job. At a minimum, the list will contain the PID of the process started when the job
       was launched, and it will be the first item in  the  list.  It  may  contain  additional  PIDs  of  other
       processes that the job has created.

       The  sshsession  and  all  processes  it  creates  are  treated  by HTCondor as though they are processes
       belonging to the job. If the slot is preempted or suspended, the sshsession is killed or suspended  along
       with the job. If the job exits before the sshsession finishes, the slot remains in the Claimed Busy state
       and  is  treated  as  though not all job processes have exited until all sshsessions are closed. Multiple
       sshsessions may be created to the same job at the same time. Resource consumption of the sshdprocess  and
       all  processes  spawned  by it are monitored by the condor_starteras though these processes belong to the
       job, so any policies such as  PREEMPT that enforce a limit on resource consumption also take into account
       resources consumed by the sshsession.

       condor_ssh_to_jobstores ssh keys in temporary files within a newly created and uniquely named  directory.
       The  newly  created  directory will be within the directory defined by the environment variable  TMPDIR .
       When the ssh session is finished, this directory and the ssh keys contained within it are removed.

       See the HTCondor administrator's manual  section  on  configuration  for  details  of  the  configuration
       variables related to condor_ssh_to_job.

       An   sshsession   works   by   first   authenticating   and   authorizing  a  secure  connection  between
       condor_ssh_to_joband the condor_starterdaemon, using HTCondor protocols. The  condor_startergenerates  an
       ssh  key pair and sends it securely to condor_ssh_to_job. Then the condor_starterspawns sshdin inetd mode
       with its stdin and stdout attached to the TCP connection from condor_ssh_to_job. condor_ssh_to_jobacts as
       a proxy for the sshclient to communicate with sshd, using the existing connection authorized by HTCondor.
       At no point is sshdlistening on the network for connections or running with  any  privileges  other  than
       that of the user identity running the job.If CCB is being used to enable connectivity to the execute node
       from  outside  of  a firewall or private network, condor_ssh_to_jobis able to make use of CCB in order to
       form the sshconnection.

       The login shell of the user id running the job is used to run the requested  command,  sshdsubsystem,  or
       interactive  shell. This is hard-coded behavior in OpenSSHand cannot be overridden by configuration. This
       means that condor_ssh_to_jobaccess is effectively disabled if the login shell disables access, as in  the
       example programs /bin/trueand /sbin/nologin.

       condor_ssh_to_jobis  intended  to work with OpenSSHas installed in typical environments. It does not work
       on Windows platforms. If the sshprograms are installed in non-standard locations, then the paths to these
       programs will need to be  customized  within  the  HTCondor  configuration.  Versions  of  sshother  than
       OpenSSHmay work, but they will likely require additional configuration of command-line arguments, changes
       to     the     sshdconfiguration     template     file,     and     possibly    modification    of    the
       $(LIBEXEC)/condor_ssh_to_job_sshd_setup script used by the condor_starterto set up sshd.

Options

       -help

          Display brief usage information and exit.

       -debug

          Causes debugging information to be sent to  stderr , based on the value of the configuration  variable
          TOOL_DEBUG

       -name schedd-name

          Specify an alternate condor_schedd, if the default (local) one is not desired.

       -pool pool-name

          Specify an alternate HTCondor pool, if the default one is not desired.

       -ssh ssh-command

          Specify  an  alternate sshprogram to run in place of ssh, for example sftpor scp. Additional arguments
          are specified as ssh-command. Since the arguments are delimited by spaces, place  double  quote  marks
          around  the  whole  command,  to  prevent  the  shell  from  splitting  it  into multiple arguments to
          condor_ssh_to_job . If any arguments must contain spaces, enclose them within single quotes.

       -keygen-options ssh-keygen-options

          Specify additional arguments to the ssh_keygenprogram, for creating the ssh key that is used  for  the
          duration  of  the  session.  For example, a different number of bits could be used, or a different key
          type than the default.

       -shells shell1,shell2,...

          Specify a comma-separated list of shells to attempt to launch. If the first shell does  not  exist  on
          the remote machine, then the following ones in the list will be tried. If none of the specified shells
          can  be  found,  /bin/shis  used  by  default.  If  this  option  is not specified, it defaults to the
          environment variable  SHELL from within the condor_ssh_to_job environment.

       -auto-retry

          Specifies that if the job is not yet running, condor_ssh_to_job should keep trying periodically  until
          it succeeds or encounters some other error.

       -remove-on-interrupt

          If specified, attempt to remove the job from the queue if condor_ssh_to_job is interrupted via a ctrl-
          c or otherwise terminated abnormally.

       -X

          Enable X11 forwarding.

Examples

       % condor_ssh_to_job  32.0
       Welcome to slot2@tonic.cs.wisc.edu!
       Your condor job is running with pid(s) 65881.
       % gdb -p 65881
       (gdb) where
       % logout
       Connection to condor-job.tonic.cs.wisc.edu closed.

       To upload or download files interactively with sftp:

       % condor_ssh_to_job  -ssh sftp 32.0
       Connecting to condor-job.tonic.cs.wisc.edu...
       sftp> ls
       sftp> get outputfile.dat

       This  example  shows  downloading a file from the job with scp. The string "remote" is used in place of a
       host name in this example. It is not necessary to insert the correct remote host name, or  even  a  valid
       one,  because  the  connection  to  the  job  is created automatically. Therefore, the placeholder string
       "remote" is perfectly fine.

       % condor_ssh_to_job  -ssh scp 32 remote:outputfile.dat .

       This example uses condor_ssh_to_jobto accomplish the task of running rsyncto  synchronize  a  local  file
       with  a  remote  file in the job's working directory. Job id 32.0 is used in place of a host name in this
       example. This causes rsyncto insert the expected job id in the arguments to condor_ssh_to_job.

       % rsync -v -e "condor_ssh_to_job " 32.0:outputfile.dat .

       Note that condor_ssh_to_jobwas added to HTCondor in version 7.3. If one uses condor_ssh_to_jobto  connect
       to  a job on an execute machine running a version of HTCondor older than the 7.3 series, the command will
       fail with the error message

       Failed to send CREATE_JOB_OWNER_SEC_SESSION to starter

Exit Status

       condor_ssh_to_jobwill exit with a non-zero status value if it fails to set  up  an  ssh  session.  If  it
       succeeds, it will exit with the status value of the remote command or shell.

Author

       Center for High Throughput Computing, University of Wisconsin-Madison

Copyright

       Copyright (C) 1990-2013 Center for High Throughput Computing, Computer Sciences Department, University of
       Wisconsin-Madison, Madison, WI. All Rights Reserved. Licensed under the Apache License, Version 2.0.

                                                  January 2014                              condor_ssh_to_job(1)