title: Jenkins git submodule update fails
body: <p>I have a git repo which has one submodule. Both belong to a team on BitBucket. My jenkins machine is a AWS windows server with the git plugin. I am using SSH keys for authentication.
  I have three jenkins jobs. One clones the main repo. This is successful. One clones the second repo on its own (the repo which will be used as a submodule). This is also successful.
  In my third build job I tell jenkins to recursively update the submodules. This fails and says public-key error. How can this be the case if I can clone the repo on its own?</p>
  
  <p>Console output below:</p>
  
  <pre><code>Started by user anonymous
  Building on master in workspace C:\Program Files (x86)\Jenkins\jobs\MainRepo\workspace
  Wiping out workspace first.
  Cloning the remote Git repository
  Cloning repository git@bitbucket.org:team/mainrepo.git
   &gt; git.exe init C:\Program Files (x86)\Jenkins\jobs\mainrepo\workspace # timeout=10
  Fetching upstream changes from git@bitbucket.org:team/mainrepo.git
   &gt; git.exe --version # timeout=10
  using GIT_SSH to set credentials 
   &gt; git.exe -c core.askpass=true fetch --tags --progress git@bitbucket.org:team/mainrepo.git +refs/heads/*:refs/remotes/origin/*
   &gt; git.exe config remote.origin.url git@bitbucket.org:team/mainrepo.git # timeout=10
   &gt; git.exe config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
   &gt; git.exe config remote.origin.url git@bitbucket.org:team/mainrepo.git # timeout=10
  Fetching upstream changes from git@bitbucket.org:team/mainrepo.git
  using GIT_SSH to set credentials 
   &gt; git.exe -c core.askpass=true fetch --tags --progress git@bitbucket.org:team/mainrepo.git +refs/heads/*:refs/remotes/origin/*
   &gt; git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
   &gt; git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10
  Checking out Revision 6b3f6535c45e79ee88f4918d464edead48d83369 (refs/remotes/origin/master)
   &gt; git.exe config core.sparsecheckout # timeout=10
   &gt; git.exe checkout -f 6b3f6535c45e79ee88f4918d464edead48d83369
   &gt; git.exe rev-list 6b3f6535c45e79ee88f4918d464edead48d83369 # timeout=10
   &gt; git.exe remote # timeout=10
   &gt; git.exe submodule init # timeout=10
   &gt; git.exe submodule sync # timeout=10
   &gt; git.exe config --get remote.origin.url # timeout=10
   &gt; git.exe submodule update --init --recursive
  FATAL: Command "git.exe submodule update --init --recursive" returned status code 128:
  stdout: 
  stderr: Cloning into 'my-submodule'...
  Permission denied (publickey).
  fatal: Could not read from remote repository.
  
  Please make sure you have the correct access rights
  and the repository exists.
  fatal: clone of 'git@bitbucket.org:team/my-submodule.git' into submodule path 'my-submodule' failed
  
  hudson.plugins.git.GitException: Command "git.exe submodule update --init --recursive" returned status code 128:
  stdout: 
  stderr: Cloning into 'my-submodule'...
  Permission denied (publickey).
  fatal: Could not read from remote repository.
  
  Please make sure you have the correct access rights
  and the repository exists.
  fatal: clone of 'git@bitbucket.org:team/my-submodule.git' into submodule path 'my-submodule' failed
  
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1693)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:62)
      at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$7.execute(CliGitAPIImpl.java:953)
      at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:90)
      at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1098)
      at hudson.scm.SCM.checkout(SCM.java:485)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:1276)
      at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:607)
      at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
      at hudson.model.Run.execute(Run.java:1738)
      at hudson.matrix.MatrixBuild.run(MatrixBuild.java:301)
      at hudson.model.ResourceController.execute(ResourceController.java:98)
      at hudson.model.Executor.run(Executor.java:410)
  Finished: FAILURE
  </code></pre>