SSH git commands with username and password
Assuming you're using a recent version of Git, you can use the GIT_SSH_COMMAND
environment variable:
GIT_SSH, GIT_SSH_COMMAND If either of these environment variables is set then git fetch and git push will use the specified command instead of ssh when they need to connect to a remote system. The command will be given exactly two or four arguments: the username@host (or just host) from the URL and the shell command to execute on that remote system, optionally preceded by -p (literally) and the port from the URL when it specifies something other than the default SSH port. $GIT_SSH_COMMAND takes precedence over $GIT_SSH, and is interpreted by the shell, which allows additional arguments to be included. $GIT_SSH on the other hand must be just the path to a program (which can be a wrapper shell script, if additional arguments are needed). Usually it is easier to configure any desired options through your personal .ssh/config file. Please consult your ssh documentation for further details.
So, before you call git
, you can simply:
export GIT_SSH_COMMAND='ssh -i /path/to/key'
If you can't use an SSH key, you can use the the Jenkins Credential Binding plugin.