【问题标题】:Windows command line GIT password promptWindows 命令行 GIT 密码提示
【发布时间】:2013-09-30 09:05:21
【问题描述】:

我在 Windows PC 上安装了 mysysgit 和 TortoiseGit,它连接到 Linux 机器上的远程 Git 存储库。我已经创建了 ssh 密钥,并将它们添加到 TortoiseGit 的配置文件中。当我与 TortoiseGit 中的远程仓库交互时,一切正常。没有密码提示。但是,当我尝试从命令行运行 Git 命令时,系统会提示我输入 SSH 密码。

我需要怎么做才能不从命令行提示我输入密码?

【问题讨论】:

    标签: linux windows git ssh ssh-keys


    【解决方案1】:

    确保您的 git 会话引用 TortoisePLink.exe(在 GIT_SSH 环境变量中),如“Why git can't remember my passphrase under Windows”中所述:

    (您可能已经完成了前两个步骤)

    • 使用 TortoiseGit 的 puttygen.exe 将您的密钥转换为与 TortoiseGit 的 pageant.exe 一起使用。
    • 运行 TortoiseGit 的 pageant.exe,打开您的 .ppk 文件(“添加密钥”),并为您的密钥提供密码。
    • 添加环境变量:

      GIT_SSH=C:\full\path\to\TortoisePlink.exe
      

    这假定您的TortoiseGit is using TortoisePlink.exe


    OP scott80109 结束 in the comments

    已安装 msysgit 以使用 Open SSH。
    我将其更改为使用plink,现在它可以在没有提示的情况下运行


    Erez A. Korn 添加in the comments

    我更喜欢使用 openssh,因为它不需要我使用其他格式 (ppk) 的密钥。
    我编写了一个小包装器来启动 ssh-agent 并处理业务,然后将其添加到我的 Windows 启动中。
    您可以查看erezak/ssh-agent-wrapper-win中的代码。

    【讨论】:

    • 谢谢。你的帖子帮我解决了。安装了 msysgit 以使用 Open SSH。我将其更改为使用 plink,现在它可以在没有提示的情况下工作。
    • 我更喜欢使用 openssh,因为它不需要我的密钥采用其他格式 (ppk)。我编写了一个小包装器来启动 ssh-agent 并处理业务,然后将其添加到我的 Windows 启动中。您可以查看github.com/erezak/ssh-agent-wrapper-win中的代码
    • @ErezA.Korn 非常好!我已将您的评论包含在答案中以提高知名度。
    【解决方案2】:

    我建议使用选美。阅读此http://guides.beanstalkapp.com/version-control/git-on-windows.html 并将您的 ssh-key 添加到选美。它影响全球。

    【讨论】:

    • Pageant 已安装并已添加密钥。我不认为这是问题所在。
    • @scott80109,你有没有正确指向 PuTTY 的 plink.exeGIT_SSH 环境变量?否则,普通的 Windows 版 Git 将找不到它,并将使用其内置的 SSH 客户端(OpenSSH 客户端的捆绑端口)。见第二张截图here
    【解决方案3】:

    我的用例需要多个具有密码保护的 ssh 密钥的 github 用户。

    我对我的~.ssh/config 文件进行了排序,以便为不同的 repo 域使用不同的密钥,如 here 所述

    但是,我不想每次都输入密码,也不想使用 ssh-agent。

    以下是我如何设置 Pageant 以在 Windows 登录时询问并记住我的密码:

    • Download the Putty Tools package
    • Win+R 打开运行对话框
    • shell:startup 在 Windows 资源管理器中打开自动启动文件夹
    • 在单独的资源管理器窗口中导航到您的 Pageant 文件夹
    • 右键单击并将 PAGEANT.EXE 拖动到启动文件夹。选择创建快捷方式
    • 右键单击快捷方式、属性、快捷方式选项卡
    • 找到您的 .ppk 编码密钥对的路径
      • 如果您需要一个新的,请使用 PUTTYGEN.EXE 生成一个
      • 如果您有 linux id_rsa 文件但没有 .ppk,请使用 PUTTYGEN.EXE 转换一个
      • win7+:在资源管理器中右击键,复制为路径
    • 将密钥路径附加到 C:\whatever\PAGEANT.EXE 行
      • 例如:“目标:C:\putty\PAGEANT.EXE plato_cambrian.ppk plato.ppk
      • 如果您的键与 PAGEANT 不相邻,您可以使用绝对路径或更改“Start in:”,即 Pageant 的 CWD
    • 打开快捷方式或重新启动,然后输入您的密码

    此外,对于最终来到这里的 ubuntu/linux mint 上的任何人,我记录了类似的步骤 here

    【讨论】:

      最近更新 更多