gnutls_handshake()失败:握手失败GIT

时间:2020-09-08 07:35:16

标签: linux git ubuntu bitbucket

一切正常,但突然我收到错误消息:

致命:无法访问 'https://username@bitbucket.org/name/repo_name.git/': gnutls_handshake()失败:握手失败

我正在计算机和EC2实例上获取此信息。当我在另一台计算机上尝试时,它在那儿工作正常。

我已经尝试了Stackoverflow和其他论坛的许多解决方案。但没有任何效果!

在计算机上,操作系统是Linux Mint 17,在EC2实例上是Ubuntu 14.04.6 LTS。

可能是问题所在,我应该怎么做才能解决此问题?

3 个答案:

答案 0 :(得分:6)

在装有Ubuntu 14.04的服务器上遇到相同的问题,发现2020年8月24日,bitbucket.org更改为不再允许使用旧密码,请参阅https://bitbucket.org/blog/update-to-supported-cipher-suites-in-bitbucket-cloud

这会影响https://到bitbucket的连接,但不会影响ssh的连接,因此对我来说最快的解决方案是add an ssh key to bitbucket,然后将远程地址从https更改为ssh。

更改我从here中找到的遥控器的步骤,基本上是:

Get-ChildItem -Path $varx

https://community.atlassian.com/t5/Bitbucket-questions/fatal-unable-to-access-https-bitbucket-org-gnutls-handshake/qaq-p/1468075

的Atlassian论坛上有更多关于此问题的讨论

答案 1 :(得分:5)

最快的解决方案是使用 SSH 而不是 HTTPS 。我尝试了其他方法来解决此问题,但无法正常工作。

以下是从 SSH 替换 HTTPS 的步骤:

  1. 在服务器上生成ssh key using ssh-keygen

  2. 从步骤1中生成的id_rsa.pub文件中复制公钥,并根据存储库主机在以下链接中添加公钥-

    Bitbucket-https://bitbucket.org/account/settings/ssh-keys/

    Github-https://github.com/settings/ssh/new

    Gitlab-https://gitlab.com/profile/keys

  3. 现在运行以下命令以从服务器命令行终端测试身份验证

    Bitbucket

    ssh -T git@bitbucket.org
    Github
    ssh -T git@github.com
    Gitlab
    ssh -T git@gitlab.com

  4. 转到repo目录,然后使用emac或vi或nano打开.git / config文件

  5. 将远程“起源” URL(以https开头)替换为以下内容-

    对于 Bitbucket -git@bitbucket.org:<用户名> / .git

    对于 Github -git@github.com:<用户名> / .git

    对于 Gitlab -git@gitlab.com:<用户名> / .git

答案 2 :(得分:1)

sudo bash

mkdir upgrade

cd upgrade

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

tar xpvfz openssl-1.1.1g.tar.gz

cd openssl-1.1.1g

./Configure 

make ; make install

cd ..

wget https://curl.haxx.se/download/curl-7.72.0.tar.gz

tar xpvfz curl-7.72.0.tar.gz

cd curl.7.72.0

./configure --with-ssl=/usr/local/ssl

make ; make install

cd ..

git clone https://github.com/git/git 

cd git

vi Makefile, change prefix= line to /usr instead of home

make ; make install