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 git@github.com: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 git@github.com: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?
Best Solution
None of these solutions worked for me.
Instead, I elaborate on @Martin v. Löwis 's mention of setting a
config
file for SSH.SSH will look for the user's
~/.ssh/config
file. I have mine setup as:And I add a remote git repository:
And then git commands work normally for me.
NOTES
IdentitiesOnly yes
is required to prevent the SSH default behavior of sending the identity file matching the default filename for each protocol. If you have a file named~/.ssh/id_rsa
that will get tried BEFORE your~/.ssh/id_rsa.github
without this option.References