Provided by: htcondor_8.6.8~dfsg.1-2ubuntu1_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.

       condor_ssh_to_jobis available in Unix HTCondor distributions, and works with two kinds of jobs: those  in
       the  vanilla,  vm,  java, local, or parallel universes, and those jobs in the grid universe which use EC2
       resources. It will not work with other grid universe jobs.

       For jobs in the vanilla, vm, java, local, or parallel universes, 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_PIDSis 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 PREEMPTthat 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.

       For  jobs  in  the  grid  universe  which use EC2 resources, a request that HTCondor have the EC2 service
       create a new key pair for the job by specifying  ec2_keypair_filecauses  condor_ssh_to_jobto  attempt  to
       connect  to the corresponding instance via ssh. This attempts invokes sshdirectly, bypassing the HTCondor
       networking layer. It supplies sshwith the public DNS name of the instance and the name of the  file  with
       the  new  key  pair's  private  key.  For  the  connection  to succeed, the instance must have started an
       sshserver, and its security group(s) must allow connections on port 22. Conventionally, images will allow
       logins  using the key pair on a single specific account. Because sshdefaults to logging in as the current
       user, the -l <username>option or its equivalent for other versions of sshwill be needed as  part  of  the
       remote-commandargument.  Although  the  -Xoption does not apply to EC2 jobs, adding -Xor -Yto the remote-
       commandargument can duplicate the effect.

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. Does not apply to EC2 jobs.

       -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. Does  not
          apply to EC2 jobs.

       -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. Does not apply to EC2 jobs.

       -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 SHELLfrom within the condor_ssh_to_job environment. Does not apply to EC2 jobs.

       -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. Does not apply to EC2 jobs.

       -x

          Disable 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&ndash;Madison

Copyright

       Copyright © 1990-2016 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 2020                              condor_ssh_to_job(1)