【问题标题】:using sudo with mercurial and ssh authentication将 sudo 与 mercurial 和 ssh 身份验证一起使用
【发布时间】:2010-05-09 22:41:25
【问题描述】:

我如何运行
ssh-add key
sudo hg clone hg@bitbucket.org/etc/etc

但使用我的 ssh 密钥而不是超级用户。

大家好,当我将 sudo 与例如 sudo hg clone hg@bitbucket.org/etc/etc 一起使用时,在我将密钥添加到我的用户帐户后它不起作用。我记得这是因为 sudo 以超级用户身份运行,但该用户无法添加密钥。我记得设置了一些指令(我使用 debian),允许我以 sudo 运行该命令,但我的 ssh 密钥仍然来自我的普通用户帐户,但我当时没有记下它。谢谢。

【问题讨论】:

  • 为什么需要在sudo下运行hg?
  • 我想出于同样的原因每个人都需要运行 sudo,我不想给我的用户帐户写权限。我也找到了我想要的东西。 env_keep=SSH_AUTH_SOCK 添加到 visudo 中的默认值允许 sudo 从运行 sudo 的帐户使用 SSH 身份验证,还允许该 cmd 使用权限提升。

标签: mercurial ssh debian sudo


【解决方案1】:

Ry4an 的回答为我指明了正确的方向,但我发现至少在 Hg 的当前版本 (1.6.4) 中,您需要在后面加上 --ssh(或等效的 -e hg 命令。

例如

hg clone -e 'ssh -i /path/to/key' ssh://user@host/path

【讨论】:

    【解决方案2】:

    我看到您找到了一种将 sudo 用户链接到您的主用户密钥的方法,但比起使用 ssh-agent 来进行类似的事情,您更安全地明确指定密钥:

    sudo hg --ssh '/usr/bin/ssh -i /path/to/private.key' clone hg@bitbucket.org/etc/etc 
    

    【讨论】:

    • 哦,太好了。现在不必修改 sudoers 文件。谢谢!
    • 对我不起作用,显示错误:hg: option --ssh not Recognized
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 2020-03-12
    • 2018-05-15
    • 2011-11-25
    • 2017-05-10
    • 1970-01-01
    相关资源
    最近更新 更多