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 – >设置 – >networking
- SSH客户端指向
C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
- 将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信息非常简单。 保存每次您进行拉或推时都必须键入您的用户名和密码。
-
使用以下内容创build名为_netrc的文件:
机器github.com
login你的login
密码yourpassword -
将文件复制到C:\ Users \(或另一个位置;这恰好是我放置的位置)
-
转到命令提示符,键入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的原始问题)的存储库,则需要
- 在PuTTY gen中打开SSH密钥(与Tortoise Git一起安装)
- 在PuTTY gen中,将密钥保存为PuTTY密钥。
- 在存储库中,
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使用:
- 正如其他人已经指出的SSH密钥,或
- 内置的凭证助手。
显然,除非回购并不重要,否则不要将密码存储在文本文件中。
TortoiseGit> 1.8.1安装助手git-credential-winstore ,它提供本地API来访问和存储您的login信息到现有的本地Windows Credential Store中 。
您可以通过控制面板→用户帐户→凭证pipe理器并select“Windows凭据”来查看存储的凭证。 开始“git:”的条目来自git-credential-winstore。
您可以通过以下方式为每个存储库设置wincred:
(GUI)
- 在文件资源pipe理器中导航到存储库。
- 上下文点击→TortoiseGit→设置→Git→凭证
- 凭证助手:wincred – 只有这个仓库
- 下一次使用回购进行身份validation时,凭证将被存储。
(CLI,POSH)
-
cmdkey /add:git:https://USERNAME@github.com /user:USERNAME /pass:PASSWORD
-
@" [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):
- 打开PuttyGen导入我的ssh密钥并将其转换为putty密钥,将公共和私有部分保存在.ssh文件夹(%userprofile%.ssh)
- 打开Putty并转到Connection-> SSH-> Auth,然后在那里设置你的私钥文件。
- 返回会话,select默认设置,然后点击保存。
- 现在尝试再次克隆,你会被要求在你的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,总是使用一个特定的密钥,当然,当我尝试用新的密钥连接到不同的服务器时,这就产生了所有的问题。
那么如何解决一个问题,以及如何判断你是否真的有和我一样的问题:
- 从这里下载您的机器上的
plink.exe
- 打开Windows命令提示符在您下载您的
plink.exe
相同的目录 - 运行以下命令:
plink -v <path_to_your_git_clone_repo_link>
- 看看输出,看看你是否有像
Reading private key file "C:\Path\To\Some\privateKey.ppk"
- 如果你看到这样的行,而不是你想要使用的putty密钥文件,那么只要去重命名/删除/移动该文件,以便下次plink不能加载
- 重命名有问题的文件后,它应该都按预期工作,如果从第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存储库提供程序。