我已经安装了Git (为MinTTY和PuTTY\plink.exe配置)和PuTTY,并且正在尝试让它与Bitbucket存储库一起工作。我已经在Pageant和网站上加载了我的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 hg@bitbucket.org时,它使用id_rsa,但在~/.ssh中没有使用其他键。尝试使用ssh-add ~/.ssh/bitbucket_rsa会导致以下结果:
Could not open a connection to your authentication agent.我读过关于配置PuTTY以允许转发的文章,但这通常是建议结束的地方,所以我只是为默认会话设置了这个选项,并将其保存在那里。
我运行ps来检查哪些应用程序正在运行,而ssh-agent不在其中。运行eval 'ssh-agent'将启动守护进程,但这并没有什么区别。
发布于 2017-04-10 00:47:38
这就是最后为我工作的原因。
顺便说一句,我也有Windows上的Bash,但我认为这并不重要。
我安装了Sourcetree,并用plink.exe、puttygen.exe和pageant.exe指向了它的文件夹。您也可以分别下载和安装这些文件。
配置Windows环境变量
Environment。否则,打开系统属性/高级系统设置并找到您的环境变量。plink.exe文件的完整路径(您也可以将pageant.exe和puttygen.exe放在同一个文件夹中)。C:\Program Files (x86)\Atlassian\SourceTree\tools\putty\plink.exe - **Note**: Newer versions of Sourcetree seem to install ot `%localappdata%`. The tools are located at `%localappdata%\SourceTree\app-x.x.x\tools\putty` - **Note**: The newer Sourcetree (v2 on Windows) uses versioned directories, so every time you update it, you'll have to update this which is a pain. It is best to just make a copy of `plink.exe` and put it somewhere that's not going to change. - If you have any of the above programs running you can always open up task manager, find the process, and open up the folder location to get the path to `plink.exe`.利润
确保重新启动您的终端,以便它们获得更新的环境变量。对我来说,我在Visual Studio代码中为我的集成终端运行Bash,所以我不得不重新启动Visual代码。关闭集成终端并打开新的终端肯定是可以接受的,但我也希望Visual代码中内置的git功能也能工作。
备注
考虑到我已经安装了Sourcetree,我能够使用它的接口从Bitbucket中克隆出来并推入它的接口,但是尝试通过终端并不有效,因为它们使用的是不同的凭据集。
另一件有趣的事情是,如果您导航到位于:./.git/config的项目的git配置中,您可以将遥控器从SSH切换到HTTPS。您可以从Bitbucket存储库的概述中获取以下值。
git@bitbucket.org:USERNAME/REPO_NAME.githttps://USERNAME@bitbucket.org/USERNAME/REPO_NAME.git我注意到,在Windows 10上使用HTTPS时,它将使用Windows凭据管理器(我尝试在此基础上添加凭据,但我仍然使用SSH,所以没关系),当您与远程存储库交互时,它会提示您输入凭据,并将它们存储在Windows凭证管理器中:)
希望这些方法中的一种会对你有帮助。HTTPS方法将跳过整个SSH密钥生成过程,并将其推到Bitbucket中,但对我来说,它更安全、更便携。
Mac OS
您可能需要将密钥添加到密钥链中,特别是在使用Visual代码并在密钥上有密码的情况下(目前,Visual代码将不允许您键入密码)。
ssh-add -K ~/.ssh/id_rsa添加
我不确定这些是否对某人有帮助,但我一直在关注:https://github.com/Microsoft/vscode/issues/13680中对SSH的支持。
发布于 2016-01-31 16:19:14
你把事情搞混了。
PuTTY和Pageant不兼容OpenSSH工具,无法在一起进行通信。PuTTY不能从OpenSSH代理中读取密钥,OpenSSH不能从Pageant读取密钥。键格式也不同。这在这个世界上是一件坏事,但没有解决办法。
“代理转发”也不同于“使用代理”。
如果您使用plink设置Git (请确保确实安装了),请检查Pageant是否正在运行,以及在Connection→SSH→Auth下的存储配置文件中是否选中了“尝试使用Pageant身份验证”选项。
如果它不能解决您的问题,请从PuTTY发布一些调试日志。
发布于 2016-01-31 06:25:09
您不需要PuTTY在ssh中使用Bitbucket :在git-for-windows中打包的OpenSSH版本(C:\prgs\git\PortableGit-2.7.0-64-bit\usr\bin\ssh.exe)工作得很好。
确保在当前的shell会话中,您已经将主配置设置为%USERPROFILE% ( PortableGit-2.7.0-64-bit\git-cmd.exe足以打开配置正确的常规CMD )。
在config中创建一个名为%USERPROFILE%\.ssh的文件(如亚特兰西岛文献的第三步):
Host bitbucket.org
IdentityFile ~/.ssh/bitbucket_rsa(您也可以使用“/C/path/to/bitbucket_rsa”。)
它允许使用像bitbucket.org:user/repo这样的SSH。使用ssh -Tv bitbucket.org测试它(当然,在将您的公钥添加到Bitbucket帐户之后)。
注意:只有当私钥受到密码保护时才需要ssh-agent。
更新2018年,两年后:"向PuTTY告别,因为微软在Windows 10中添加了一个OpenSSH客户端“。现在是抛开腻子的时候了:不需要使用不同的密钥格式和专有解决方案,因为OpenSSH正式发布为Windows (目前处于测试版,Q1 2018年)。
https://stackoverflow.com/questions/35110079
复制相似问题