【问题标题】:Bitbucket :Git on Cygwin - Cannot push to remote repositoryBitbucket:Cygwin 上的 Git - 无法推送到远程存储库
【发布时间】:2013-01-27 05:56:56
【问题描述】:

更新x3(见下文) 所以我成功地使用了我的 Git Bitbucket 存储库几个月,直到 2012 年 11 月 29 日。直到前几天(2013 年 1 月 24 日),我才尝试再次提交 徒劳无功。我在 Cygwin 中重新安装了我的 ssh 服务器,所以我保证我有一个合适的 联系。我可以从另一个工作站访问我的服务器,所以我是 确定没关系。我也能够克隆我的回购没有问题 Bitbucket 使用 ssh 隧道。但是,当我尝试推送我的更改时 (在添加、提交等之后)我得到以下信息:

$ git push origin master    
Enter passphrase for key '/home/[User]/.ssh/id_rsa':    
conq: invalid command syntax.    
fatal: The remote end hung up unexpectedly

我搜索了论坛、常见问题解答等都无济于事。这是输出 我的 SSH:

$ ssh -T git@bitbucket.org
Enter passphrase for key '/home/[User]/.ssh/id_rsa':
conq: logged in as [username].

您可以使用 git 或 hg 连接到 Bitbucket。外壳访问被禁用。

另外,对于 ssh -v:

$ ssh -v
OpenSSH_5.8p1, OpenSSL 0.9.8r 8 Feb 2011
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-e escape_char] [-F configfile]
[-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]

还有 git --version:

$ git --version
git version 1.7.5.1

正如我所说,ssh 似乎正在工作,这看起来是别的东西。

--更新-- 这是 ssh -v -T git@bitbucket.org

的输出
$ ssh -v -T git@bitbucket.org
OpenSSH_5.8p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to bitbucket.org [207.223.240.181] port 22.
debug1: Connection established.
debug1: identity file /home/[User]/.ssh/id_rsa type 1
debug1: identity file /home/[User]/.ssh/id_rsa-cert type -1
debug1: identity file /home/[User]/.ssh/id_dsa type -1
debug1: identity file /home/[User]/.ssh/id_dsa-cert type -1
debug1: identity file /home/[User]/.ssh/id_ecdsa type -1
debug1: identity file /home/[User]/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.8
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
debug1: Host 'bitbucket.org' is known and matches the RSA host key.
debug1: Found key in /home/[User]/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/[User]/.ssh/id_rsa
debug1: Remote: Forced command: conq username:[username]
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/[User]/.ssh/id_rsa':
debug1: read PEM private key done: type RSA
debug1: Remote: Forced command: conq username:[username]
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
Authenticated to bitbucket.org ([207.223.240.181]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
conq: logged in as [username].

You can use git or hg to connect to Bitbucket. Shell access is disabled.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2576, received 2984 bytes, in 0.3 seconds
Bytes per second: sent 7759.0, received 8988.0
debug1: Exit status 0

更新 (02/17/13): 我搜索了 Bitbucket 网站上的支持页面,但他们只详细说明了如何在 Windows 上使用 GitBash 而不是 Cygwin 设置 Bitbucket。我看到其他人在他们的常见问题解答中遇到了同样的问题,但被提到了 Atlassian 支持。

我开始直接与 Atlassian 支持人员交谈,他告诉我查看 Stack Overflow 上的帖子 (Git with SSH on Windows)。发布的解决方案不起作用,因此支持代表指示我安装 GitBash 以查看除了 Cygwin 之外是否还有其他问题。我安装了 GitBash 并且能够让它工作,并且可以使用 ssh 或 https 再次推送和克隆。我告诉了代表,他说这是他可以提供的帮助,因为我的问题是我自己的软件。所以我相信我已经将问题缩小到 Cygwin 中的某些机制,这些机制似乎与 SSH 无关,但可能与 git 有关。

更新(2013 年 2 月 18 日): 今天,我确认我也能够从 Cygwin 中提取。所以现在,我只是有推送的问题。我正在考虑将别名映射到 Cygwin 内部的 mysysgit ,就像在 Errors cloning git project using Cygwin, msysgit Bash shell works 中一样,但这可能需要比我现在必须尝试的更多时间。仍在寻找让 Git 在 Cygwin 中本地运行的解决方案。

更新(2013 年 2 月 20 日): 我现在在使用 GitBash 推送时遇到了完全相同的错误。在支持页面看到这个垃圾:https://bitbucket.org/site/master/issue/4406/invalid-command-synthax

这似乎是一个反复出现的问题,他们的支持不会直接解决。从表面上看,这自 2012 年 6 月以来一直在进行,没有公布任何决议。如果有人读到这篇文章并能给我一些指导,我将不胜感激。目前,我已经使用 HTTPS 切换到 GitBash。

【问题讨论】:

  • 您是否已将该计算机的密钥上传到 bitbucket?
  • 是的,密钥已上传。新年前一切正常。所有密钥均已设置好并正常工作。
  • 所以我在 mac os 10.8.3 上使用 git git version 1.7.9.6 (Apple Git-31.1) 并遇到同样的问题。

标签: git cygwin bitbucket git-push


【解决方案1】:

https://bitbucket.org/site/master/issue/4218/conq-invalid-repository-syntax

“对于 SSH 问题,请先在https://confluence.atlassian.com/display/BITBUCKET/Troubleshooting+SSH+Issues 尝试我们的故障排除指南。如果您仍然遇到问题,请向 support@bitbucket.org 或 http://answers.atlassian.com 提出问题,支持或社区可以帮助解决任何问题用你的配置。”

【讨论】:

  • 我已经开始使用 Atlassian 支持,但他们的助手让我安装和设置 GitBash,但没有解决这个问题。因此,我在这里问它是我最后的手段。
  • 另外,您引用的支持页面不使用 Cygwin,仅使用 GitBash。
【解决方案2】:

此问题已修复。这是由于某些客户端具有唯一设置的接收包配置。虽然我不知道是什么客户决定设置这个,但许多用户都受到了影响,因为 Bitbucket 的系统并非旨在通过 SSH 处理非连字符的 git 命令语法。 Bitbucket 现在已更改此设置以允许 git-receive-pack 和 git receive-pack 工作。

作为参考,请检查您的全局配置,您可能会看到如下内容:

remote.origin.receivepack git receive-pack

默认情况下未设置,但默认为git-receive-pack

【讨论】:

  • 请注意,当然,如果这不能解决问题,请在 Bitbucket 支持中告诉我们。
【解决方案3】:

我按照这篇博文中的说明进行操作:

http://blog.cyplo.net/2012/10/25/using-git-in-cygwin-with-bitbucketgithubother-key-reliant-service/

在我将 .ssh 文件夹的组从 None 更改为 Users 后,它起作用了

chown abudaan:Users .ssh -R

【讨论】:

    【解决方案4】:

    请检查{project_folder}/.git/config 文件。 如果有远程存储库 URL ssh://。删除它并尝试推送操作。

    git push -u origin --all
    

    有效的远程存储库 url

    url = git@bitbucket.org:{username}/{project-name}.git
    

    【讨论】:

      猜你喜欢
      • 2018-06-24
      • 2010-10-25
      • 1970-01-01
      • 2021-06-07
      • 2018-03-14
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      相关资源
      最近更新 更多