using sudo with mercurial and ssh authentication

2019-04-16 10:58发布

How do i run
ssh-add key
sudo hg clone hg@bitbucket.org/etc/etc

but use my ssh keys and not the superusers.

Hey everyone, when i use sudo with for example, sudo hg clone hg@bitbucket.org/etc/etc after i have added a key to my user account it doesnt work. I remember this is because the sudo is ran as the superuser but that user cannot have keys added to it. I remember setting some directive (im using debian) that allowed me to run that command as sudo, but still have my ssh keys taken from my normal user account but i didnt make a note of it at the time. Thanks.

2条回答
祖国的老花朵
2楼-- · 2019-04-16 11:37

The answer by Ry4an pointed me in the right direction but I found that with the current version (1.6.4) of Hg at least, you need to put --ssh (or the equivalent -e) after the hg command.

e.g.

hg clone -e 'ssh -i /path/to/key' ssh://user@host/path
查看更多
We Are One
3楼-- · 2019-04-16 11:45

I see you found a way to have the sudo user chain off to your main user's key, but rather than using ssh-agent for something like that you're more secure explicitly specifying the key:

sudo hg --ssh '/usr/bin/ssh -i /path/to/private.key' clone hg@bitbucket.org/etc/etc 
查看更多
登录 后发表回答