-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins 2.23, SSH Agent Plugin 1.13, Pipeline 2.4
I'm attempting to create a pipeline scm job that allows the user to specify their private SSH key (stored under their user-specific credentials, not the 'public' store) as a Credentials parameter and then supply that ID to the sshagent step so the git step can pull code and (later) push code to the repository as part of a gitflow workflow.
Unfortunately, while the Credentials Parameter lets me choose my key, the step can't seem to find it, even though I've made sure the Credentials Parameter supplies a valid ID. If I switch the Credentials Parameter to use a key that is available to anyone on the server, the key is found and the steps proceed correctly.
I don't want users putting private keys in a location where just anyone can use them but it seems like the credentials are not retrievable from their private store. Quick snippet:
properties([parameters([
[$class: 'CredentialsParameterDefinition',
credentialType: 'com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey',
defaultValue: '',
description: 'The SSH user and private SSH key to use for performing the release.',
name: 'SSH_USER',
required: true],
string(defaultValue: '', description: 'The version number for the release.', name: 'RELEASE_VERSION'),
string(defaultValue: '', description: 'The next development version', name: 'DEV_VERSION')])
]
)
node {
stage('Checkout Software') {
// Checkout core
sshagent(["${SSH_USER}"]) {
git([branch: 'develop', changelog: false, poll: false, url: 'git@mygitserver:some-repo.git'])
}
}