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.