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

                                          September 2019                     condor_ssh_to_job(1)