Posted By: Anonymous
A rather unusual situation perhaps, but I want to specify a private SSH-key to use when executing a shell (
git) command from the local computer.
Basically like this:
git clone [email protected]:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Or even better (in Ruby):
with_key("/home/christoffer/ssh_keys/theuser") do sh("git clone [email protected]:TheUser/TheProject.git") end
I have seen examples of connecting to a remote server with
Net::SSH that uses a specified private key, but this is a local command. Is it possible?
Something like this should work (suggested by orip):
ssh-agent bash -c 'ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git'
if you prefer subshells, you could try the following (though it is more fragile):
ssh-agent $(ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git)
Git will invoke SSH which will find its agent by environment variable; this will, in turn, have the key loaded.
HOME may also do the trick, provided you are willing to setup a directory that contains only a
.ssh directory as
HOME; this may either contain an identity.pub, or a config file setting IdentityFile.