Git的Bash和佳丽不使用钥匙

问题描述 投票:40回答:5

我有混帐的Windows(配置MinTTY和PuTTY\plink.exe)和腻子安装,我试图让它有到位桶仓库的工作。我有我的SSH密钥加载,在佳丽和网站上,可是每当我试图做任何事情需要拉/推:

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

当我运行建议ssh -v [email protected]我在id_rsa其他按键的它使用~/.ssh但没有。试图使用ssh-add ~/.ssh/bitbucket_rsa结果:

Could not open a connection to your authentication agent.

我读过有关配置腻子允许转发,而这通常是在咨询结束,所以我只是将此选项设置为默认会话,并将其保存在那里。

我已经运行ps检查哪些应用程序正在运行,并ssh-agent不在其中。运行eval 'ssh-agent'启动守护程序,但它没有什么区别。

windows git ssh putty
5个回答
84
投票

这是最终为我工作。

顺便说一句,我有在Windows猛砸为好,但我不认为事情。

我已经安装Sourcetree,并在其与plink.exeputtygen.exe,与pageant.exe文件夹中指出。你也可以单独下载并安装这些孩子的。

配置Windows环境变量

  1. 键入Environment到Windows 10的搜索栏。否则,打开系统属性/高级系统设置,找到你的环境变量。
  2. 添加新的系统变量 变量名:GIT_SSH 变量值:完整路径plink.exe文件(你也可以在同一个文件夹中pageant.exeputtygen.exe)。 我的是:C:\Program Files (x86)\Atlassian\SourceTree\tools\putty\plink.exe 注:新Sourcetree(在Windows V2)使用版本的目录,所以每次更新它,你就必须更新此这是一种痛苦。这是最好的只是让plink.exe的副本,并把它的地方,这不会改变。 如果您有任何上述程序的运行,你可以随时打开任务管理器,找到进程,并打开该文件夹的位置,以获得路径plink.exe

利润

确保使他们得到更新的环境变量,重新启动终端。对于我来说,我跑我的Visual Studio Code内集成终端猛砸,所以我不得不重新启动Visual Studio代码。那就肯定是可以接受的,收综合终端,并打开一个新的,但我也想内置的混帐功能在Visual Studio代码工作为好。

注意

鉴于本人Sourcetree安装我能够使用其接口克隆往下掉到位桶,并通过其接口推动,而是通过终端试图不工作,因为他们使用不同的凭据集。

要指出的另一个有趣的事情是,如果你导航到位于项目的git的配置:./.git/config,你可以从使用SSH HTTPS换出你的遥控器。你可以抓住你的到位桶库从您概述以下值。

我在使用HTTPS在Windows 10,然后它会使用Windows凭据管理器发现(我尝试添加我的凭据,它在试图弄清楚这一点我自己,但我还是用SSH所以这并不重要),当你去互动与远程仓库它会提示您输入凭据,并将它们存储在Windows凭据管理器以后使用:)

希望这些方法之一将制定出适合您。该HTTPS方法将跳过整个SSH密钥生成,将其推成到位桶,但感觉更安全和便携式我。

的Mac OS

您可能需要您的密钥添加到钥匙链,特别是如果你使用Visual Studio代码,并有密码在你的密钥(目前Visual Studio代码不会让你输入一个密码)。

ssh-add -K ~/.ssh/id_rsa

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#adding-your-ssh-key-to-the-ssh-agent

附加

我不知道,如果这些可能是别人有帮助的,但我一直在下面得到支持SSH到Visual Studio代码为Windows:https://github.com/Microsoft/vscode/issues/13680


4
投票

你是混合的东西了。

腻子佳丽都没有在OpenSSH工具不兼容,无法相互通信。腻子不能从您的OpenSSH代理读取钥匙和OpenSSH无法读取佳丽的关键。密钥的格式也不同。也就是说在这个世界上是一件坏事,但在地平线上无解。

此外“代理转发”的程度超过“使用代理”不同。

如果设置的Git与砰砰(确保你真的),检查你的佳丽正在运行,如果选择“使用佳丽尝试身份验证”是在腻子已存储的配置文件下连接→SSH→验证检查。

如果它不会解决你的问题,从发布一些腻子调试日志。


2
投票

你不需要腻子SSH与到位桶的工作:包装在混帐的窗口工作就好了OpenSSH的版本(C:\prgs\git\PortableGit-2.7.0-64-bit\usr\bin\ssh.exe)。

确保,在当前的shell会话,你已经HOME设置为%USERPROFILE%(一PortableGit-2.7.0-64-bit\git-cmd.exe就足以打开一个普通CMD正确配置)。

中创建一个名为config文件%USERPROFILE%\.ssh(如step 3 of the Atlassian documentation):

Host bitbucket.org
 IdentityFile ~/.ssh/bitbucket_rsa

(您也可以使用“/C/path/to/bitbucket_rsa”。)

这允许使用SSH URL喜欢bitbucket.org:user/repo。与ssh -Tv bitbucket.org测试(增加你的公钥到您的帐户到位桶,当然后)。

注意:如果你的私钥是密码保护时,才需要ssh-agent

更新2018年,两年后: “Say Farewell to PuTTY as Microsoft adds an OpenSSH Client to Windows 10”。这实在是时间沟腻子旁白:无需为不同的(PPK)密钥格式和proprietary solution,现在OpenSSH正式发布为Windows功能(测试版现在,Q1 2018)。


1
投票

要访问的Git猛砸,那Git附带的Windows在加载Pegeant SSH密钥,您可以使用this program。安装过程所链接的页面描述。


1
投票

我使用Git的Bash什么工作为Windows 7:转换.pkk文件OpenSSH格式:

https://www.simplified.guide/putty/convert-ppk-to-ssh-key

添加生成的密钥Git是击到IdentityFile .ssh/config,例如:

Host repository
     # My converted OpenSSH key
     IdentityFile /c/Users/me/open-ssh.pri

     # This repository server uses a specific name, not usually needed.
     User git

     # This repository server uses a specific port, not usually needed
     Port 8322

     # Repository server full name
     Hostname repo.server.com
© www.soinside.com 2019 - 2024. All rights reserved.