Tortoisegit问密码

我刚开始在Git上工作。 我使用Windows 7并安装了msysgit(1.7.8)和Tortoisegit(1.7.6)。 该存储库是在可通过LAN访问的Linux服务器上创build的。 我面临的问题是我无法使用Tortoisegit克隆存储库,它要求input密码,我不确定它要求什么密码。 同时我可以使用Git Gui克隆版本库,并执行所有操作。 有人可以帮我理解为什么Tortoisegit在Git Gui没有问密码的时候。 我尝试卸载Git和Tortoisegit,然后再次安装,但没有成功。

Tortoisegit错误

我的同事解决了这个问题。 脚步:

  1. 右键单击 – > TortoiseGit – >设置 – >networking
  2. SSH客户端指向C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
  3. 将path更改为C:\Program Files (x86)\Git\bin\ssh.exe

备用path: C:\Users\...\AppData\Local\Programs\Git\usr\bin\ssh.exe

要做到这一点,没有键…

右键点击你的文件夹
selecttortoiseGit-> settings-> Git-> Remote
select原点(或任何你已经标记你的主遥控器)

在URL下使用这种格式。

  https://开头用户名:密码@url 

USERNAME是您的用户名
:冒号分隔用户名和密码,并且必须在那里
PASSWORD是你的密码
@与您的url分离凭据
URL是您用来连接.git资源的url

感谢卡马西

用TortoiseGit保存用户名和密码

在TortoiseGit中保存您的login信息非常简单。 保存每次您进行拉或推时都必须键入您的用户名和密码。

  1. 使用以下内容创build名为_netrc的文件:

    机器github.com
    login你的login
    密码yourpassword

  2. 将文件复制到C:\ Users \(或另一个位置;这恰好是我放置的位置)

  3. 转到命令提示符,键入setx home C:\ Users \

注意:如果您使用的是Windows 7以前的版本,则setx命令可能无法正常工作。 使用设置,并使用“我的电脑”下的“高级设置”将环境variables添加到Windows。

信用: http : //www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/

如果您需要使用用户名/密码,那么比现在的#2答案要简单得多。

Right-click --> Tortoise Git --> Settings --> Git --> Credential --> Choose "Wincred, all Windows users" --> Hit apply

下次input回购密码时,该密码将自动保存。


如果您使用需要SSH密钥而不是用户名/密码(这听起来像是OP的原始问题)的存储库,则需要

  1. 在PuTTY gen中打开SSH密钥(与Tortoise Git一起安装)
  2. 在PuTTY gen中,将密钥保存为PuTTY密钥。
  3. 在存储库中, Right-click --> Tortoise Git --> Settings --> Git --> Remotes 。 find您的遥控器(通常是“原点”),然后从第2步加载PuTTY键。

一个办法是做到这一点

  • 使用PuttyGen生成一个密钥对(如果你已经有一个密钥,则导入到.ppk中)
  • 加载私钥给Peagent
  • 导入公钥给你的gitosis服务器(提供你的公钥到你的pipe理员)
  • 然后使用plink作为SSH客户端

plink本身与peagent工作来检索已加载的密钥。

您可以在标准的腻子分布中find与peagent和其他好东西一起的plink.exe

使用它去:

TortoiseGit设置 – >networking – > SSH客户端。

默认情况下,这包含到TortoisePlink.exe的path,而不是给plink.exe的path

或者,您可以在msys(git)发行版中使用ssh(.exe),但是不能使用.ppk格式/ Peagent组合中的私钥。 您需要通过PuttyGen将密钥导出为OpenSSH格式,或者使用ssh-keygen创build密钥对。

自动化validation使用:

  1. 正如其他人已经指出的SSH密钥,或
  2. 内置的凭证助手。

显然,除非回购并不重要,否则不要将密码存储在文本文件中。

TortoiseGit> 1.8.1安装助手git-credential-winstore ,它提供本地API来访问和存储您的login信息到现有的本地Windows Credential Store中 。

您可以通过控制面板→用户帐户→凭证pipe理器并select“Windows凭据”来查看存储的凭证。 开始“git:”的条目来自git-credential-winstore。

您可以通过以下方式为每个存储库设置wincred:

(GUI)

  1. 在文件资源pipe理器中导航到存储库。
  2. 上下文点击→TortoiseGit→设置→Git→凭证
  3. 凭证助手:wincred – 只有这个仓库
  4. 下一次使用回购进行身份validation时,凭证将被存储。

(CLI,POSH)

  1. cmdkey /add:git:https://USERNAME@github.com /user:USERNAME /pass:PASSWORD
  2.  @" [credential] helper = wincred "@ | Out-File -FilePath $repoRoot\.git\config -Append 

您可以使用cmdkey /list:git:*为repos存储的所有凭证cmdkey /list:git:*
一旦存储,密码不会显示在cmdkey( http://ss64.com/nt/cmdkey.html

要使用密码列出所有凭据,您需要使用Windows API 。 对于PowerShell,有CredMan :

 . .\CredMan.ps1 .\CredMan.ps1 -ShoCred 

URL和窗口标题TortoisePlink都表示乌龟正试图使用​​ssh作为传输协议。 git支持多种传输协议,包括文件系统访问和ssh访问。 在你的问题中,你正在描述你想通过文件系统访问来访问远程仓库。 在这种情况下,你的远程url应该看起来像file://server/path/to/repo 。 请再次检查您的远程回购url。

我做了什么来解决这个(Windows):

  1. 打开PuttyGen导入我的ssh密钥并将其转换为putty密钥,将公共和私有部分保存在.ssh文件夹(%userprofile%.ssh)
  2. 打开Putty并转到Connection-> SSH-> Auth,然后在那里设置你的私钥文件。
  3. 返回会话,select默认设置,然后点击保存。
  4. 现在尝试再次克隆,你会被要求在你的SSH密钥的密码,input它应该工作。

不幸的是,在我用Windows 8的机器上,重新分配SSH客户端的解决scheme不起作用。 为我解决问题的解决scheme是: http : //www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/

由于这里提供的解决scheme没有为我工作,并经过很多失望的解决scheme,我在网上find我终于设法解决这个在我的机器上。

我不知道什么时候或如何设置我的TortoiseGit putty,总是使用一个特定的密钥,当然,当我尝试用新的密钥连接到不同的服务器时,这就产生了所有的问题。

那么如何解决一个问题,以及如何判断你是否真的有和我一样的问题:

  1. 从这里下载您的机器上的plink.exe
  2. 打开Windows命令提示符在您下载您的plink.exe相同的目录
  3. 运行以下命令: plink -v <path_to_your_git_clone_repo_link>
  4. 看看输出,看看你是否有像Reading private key file "C:\Path\To\Some\privateKey.ppk"
  5. 如果你看到这样的行,而不是你想要使用的putty密钥文件,那么只要去重命名/删除/移动该文件,以便下次plink不能加载
  6. 重命名有问题的文件后,它应该都按预期工作,如果从第3点运行命令。您应该看到,plink现在不能加载该ppk文件,之后应该输出类似于Pageant is running. Requesting keys. Pageant is running. Requesting keys. 我们真的想要这个

就是这样,如果有人知道我可以如何禁用这个“全球默认腻子键”,请让我知道在评论中,我会更新这个答案与信息。

Pramodtech的答案在当前版本的官方Windows Git客户端停止工作。 它现在将ssh可执行文件存储在Git\usr\bin而不是Git\bin (自2015年8月发布2.5版以来)。

所以去TortoiseGit > Settings > Network ,并将SSH客户端path更改为:

C:\Program Files\Git\usr\bin\ssh.exe (或者任何你的Git安装path)

在这里输入图像说明

请不要回购远程来源的URL可能会导致此问题。 我有一个旧的回购,完美的工作,我刚克隆了一个新的要求我的密码。

在比较Settings > Git > Remote > Url的信息,我看到那个工作了:

git@github.com:githubAccount/repoName.git

没有工作的新的有一个https地址。

请看下面的截图。

在这里输入图像说明

当我把我的私钥和公钥放在C:\ Users \ .ssh dir中时,Git DOS DOS命令行停止询问我的密码。 我在Windows 7上。

我遇到过同样的问题。 我的环境是Windows 10与TortoiseGit 2.3.0.0和git版本2.11.0.windows.1

以下解决了我的问题:

  • 右键单击 – > TortoiseGit – >设置 – >networking
  • 将SSH客户端更新到C:\ Program Files \ Git \ usr \ bin \ ssh.exe

在这里输入图像说明

有同样的问题。 在我的情况下,没有密码,我可以进入那里。 连接被configuration为SSH,但没有为repo定义的密钥。

签出: TortoiseGIT SSHconfiguration 。 这些说明适用于cloudforge,但是对于其他服务您必须这样做,只需将您的公钥提供给您的git存储库提供程序。