Windows (git bash)推送到bitbucket忽略SSH密钥

Windows (git bash)推送到bitbucket忽略SSH密钥,windows,git,ssh,bitbucket,git-bash,Windows,Git,Ssh,Bitbucket,Git Bash,我在网络上跟踪了一系列博客线索,以了解如何设置所有内容,我有以下情况: 首先,ssh-Tgit@bitbucket.org返回以下结果 conq: logged in as myuser. You can use git or hg to connect to Bitbucket. Shell access is disabled. 您试图通过SSH而不是Git连接到Bitbucket,这是第一个错误告诉您的。不允许您以这种方式连接到Bitbucket 当您设置回购协议时,如果您脱离Bitbuc

我在网络上跟踪了一系列博客线索,以了解如何设置所有内容,我有以下情况:

首先,
ssh-Tgit@bitbucket.org
返回以下结果

conq: logged in as myuser.
You can use git or hg to connect to Bitbucket. Shell access is disabled.

您试图通过SSH而不是Git连接到Bitbucket,这是第一个错误告诉您的。不允许您以这种方式连接到Bitbucket

当您设置回购协议时,如果您脱离Bitbucket中的现有回购协议,您需要做的只是:

git克隆git@bitbucket.org:/.git

您将收到一条关于接受密钥的消息,您将一切就绪

现在,如果您已经有了一个repo,您可以自己添加远程设备,但您需要将其添加到
.git/config


您可以添加
url=git@bitbucket.org:/.git
[远程“源站”]
部分

根据错误PuTTY致命错误判断,Git似乎正在尝试使用PuTTY与ssh进行身份验证。问题是PuTTY根本不知道您在
~/.ssh
中的设置。
~/.ssh
中的设置只有在使用Git Bash附带的
openssh
时才有意义。看起来好像您已经将
GIT_SSH
环境变量设置为
plink.exe
,这是一个作为PuTTY一部分的工具

您有两种选择:可以使用PuTTY和
plink.exe进行ssh操作,也可以使用Git Bash中的
openssh

如果使用PuTTY,则需要使用
pageant.exe
管理ssh密钥,这也是PuTTY的一部分。这是一个很好的工具。运行它,您应该会在任务托盘中看到一个图标。右键单击该图标以添加您的私钥。使用PuTTY的另一个步骤是设置
GIT\u SSH
,但看起来您已经这样做了。在此设置中,
git push
将使用
plink.exe
,它是PuTTY的一部分,将正确找到由
pageant.ext
存储的私钥

如果您想使用Git Bash中的
openssh
,那么您需要做的就是去掉
Git_SSH
设置。当使用
git push
时,确保设置为空的一种方法是如下运行命令:

GIT_SSH= git push origin master
user@server:/path/to/repo.git

尝试使用cmd.exe。Git Bash似乎在我的机器上存在环境变量问题

在CMD中,
echo%GIT\u SSH%
查看它是否已设置(PuTTY/Plink会这样做)。如果已设置,并且您希望使用openssh,请使用
set GIT\u SSH=
清除它


这样做之后,我可以在CMD中使用ssh进行推拉操作,而不会出现任何问题,尽管Git Bash仍然不起作用。

在我的一位同事的所有其他答案都不起作用之后,我想到了以下几点:

由于使用git bash控制台推送beanstalk works(https)等远程设备,甚至ssh也可以工作,因此我认为这一定与如何调用ssh有关,我们的远程设备是这样的:

GIT_SSH= git push origin master
user@server:/path/to/repo.git
所以ssh
给了我们一个简单的
/bin/ssh

在刚才添加的
.bashrc
配置文件中

export GIT_SSH=/bin/ssh.exe

一个更简单的解决办法是买一台mac电脑!:)


Happy gitting

是的,我已经有了,但它仍然不会使用SSH。原来是因为我安装GIT是为了使用TurtoisePlink和puttygen.exe,而不是GIT Bash提供的ssh客户端。正确!今天早上我醒来时顿悟了;记住错误实际上来自putty,这次我重新安装了Git Bash,它是用openssh配置的,而不是turtoise/putty-plink等,并且它立即工作了。问题是,我让pageagent运行,并在那里导入了.ssh密钥,但它仍然无法工作。前一天花了我整个晚上。。。在处理与ssh相关的事情时,很容易忘记时间。对于那些将PuTTY pageant与plink一起使用的人,下面的命令应该是等效的(假设plink在路径中)
plink-sshgit@bitbucket.org
使用GIT_SSH=GIT push origin master时,我遇到了一个致命错误。我在这里错过了什么?你是个天才!我已经挣扎了好几个小时了,你的一艘客轮在一秒钟内就把它修好了。提示:软呢帽你说得很对,非常感谢你的回答。我挣扎了好几个小时