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

Support alternate ssh implementations on Windows

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Minor Minor
    • git-client-plugin
    • None

      We are setting up a new Windows 2021 build node. This build node is connected from our Jenkins server using a ssh connection. This is done by using the "Microsoft OpenSSH Server 9.2.20".
      We are Running as scripted Pipeline with the following part:

      stage('checkout') {
      sh 'which ssh'
      bat 'where ssh'
      checkout([$class: 'GitSCM', branches: [[name: """$COMMIT"""]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'd7695a83-ac09-4660-8b95-74094f8059a5', url: GIT_URL]]])
      // set COMMIT_SHA1 variable with the checked out commit SHA1
      COMMIT_SHA1=sh script:'git rev-parse --verify HEAD', returnStdout: true
      }

      this results in the Error: "ssh executable not found."

      15:34:59 [Pipeline] stage
      15:34:59 [Pipeline] { (checkout)
      15:34:59 [Pipeline] sh
      15:35:00 + which ssh
      15:35:00 /c/Program Files/OpenSSH/ssh
      15:35:00 [Pipeline] bat
      15:35:00
      15:35:00 oaad\xentcon@GCDXENTCON31 F:\X.com-CIB>where ssh
      15:35:00 C:\Program Files\OpenSSH\ssh.exe
      15:35:00 [Pipeline] checkout
      15:35:00 The recommended git tool is: NONE
      15:35:00 using credential d7695a83-ac09-4660-8b95-74094f8059a5
      15:35:00 Fetching changes from the remote Git repository
      15:35:00 [Pipeline] }
      15:35:00 [Pipeline] // stage
      15:35:00 [Pipeline] echo
      15:35:00 catch2
      15:35:00 [Pipeline] echo
      15:35:00 java.lang.RuntimeException: ssh executable not found. The git plugin only supports official git client https://git-scm.com/download/win

      This pipeline is running without any problems with no change on an jnlp client Windows.

      For me it looks like the git-plugin expects to have an external ssh.exe in the path
      C:\Program Files\OpenSSH\ssh.exe
      which is definitely available. The PATH in the gitbash is:

      PATH=/cmd:/mingw64/bin:/usr/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Program Files/OpenSSH:/c/ProgramData/GooGet:/c/Program Files/Google/Compute Engine/metadata_scripts:/c/Program Files (x86)/Google/Cloud SDK/google-cloud-sdk/bin:/c/Program Files/PowerShell/7:/c/Program Files/Google/Compute Engine/sysprep:/cmd:.:/c/JavaInPath/bin:/c/PerlInPath/bin:/c/PerlInPath/site/bin:/c/strawberry/c/bin:/c/CMUtils:/c/PythonInPath:/c/Users/xentcon/AppData/Local/Microsoft/WindowsApps

            markewaite Mark Waite
            brosmar bros mar
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: