Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-59737

sshUserPrivateKey's "KeyFileVariable" is missing drive letter on windows

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • Master:
          Jenkins v 2.176.1
          from docker image jenkins/jenkins:lts
          Credential binding plugin v 1.19
      Node:
          Windows Server 2019 (amd64)

      I am seeing a bug when using 

      withCredentials([sshUserPrivateKey(credentialsId: 'myCred', keyFileVariable: 'privateSshKey')]){}

       

      Documentation for keyFileVariable states that it is "an environment variable to be set to the temporary path of the SSH key file".

       

      The problem is that the value of the variable is a nearly, but not quite, absolute path.  On Windows specifically, it is missing the drive letter and colon.  This causes it to fail with commands such as "ssh -i ${privateSshKey} myUrl".

       

      Example:  If the actual path is

      `C:\home\jenkins\agent\workspace\myjob@abc\def\ghi-privateSshKey`,

      then the environment variable is incorrectly set to

      `/home/jenkins/agent/workspace/myjob@abc/def/ghi-privateSshKey`

       

      This was very difficult to debug because the plugin masks/censors all output containing the path.  There should be a way to opt out of the masking of logs.

       

       

            Unassigned Unassigned
            cowlinator p cowlinator
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: