git clone报Permission denied (publickey) 的错误

我之前好久没有使用git了 今天使用git从Bitbucket(类似于github的托管软件)clone项目时报错

复制代码
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type 'yes', 'no' or the fingerprint: yes
Warning: Permanently added 'bitbucket.org' (ED25519) to the list of known hosts.
git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.

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

报错原因是原来git可以使用用户名和密码的方式进行验证,现在要使用密钥进行验证。

设置 SSH 密钥的步骤:

(1):在终端执行命令

复制代码
ssh-keygen -t rsa 

(2):选择生成的密钥保存的位置

系统会询问你保存新生成的SSH密钥的位置。你可以按回车键接受默认位置(通常在 ~/.ssh/id_rsa),或者输入一个新的文件路径来指定一个不同的保存位置。

(3):设置短语密码并确认这个密码

接下来,系统会提示你输入密码短语来保护私钥。你可以输入一个强密码短语,或者直接按回车键留空以不设置密码短语。如果你设置了一个密码短语,系统会要求你再次输入以确认。

(4):生成密钥以及查看生成的密钥

上述三个步骤完成后,在终端会输出公有密钥(Your public key)以及私有密钥(Your identification)。

(5):添加公有密钥到Bitbucked或gitHub

拓展:

Git 可以通过两种主要方式进行身份验证:

  1. 基于账户名和密码

    • 这种方式通常与 HTTPS 协议的远程仓库地址一起使用。当你使用 https 开头的 Git 仓库地址克隆、拉取(pull)、推送(push)代码时,系统会提示你输入用户名和密码。这可以是 Bitbucket、GitHub 或其他 Git 服务的账户凭据。
  2. 基于 SSH 密钥

    • 这种方式使用 SSH 协议,需要你设置 SSH 密钥对。SSH 密钥对包括一个私钥和一个公钥。私钥保留在你的本地计算机上,而公钥需要添加到你想要访问的 Git 服务账户中(例如 Bitbucket 或 GitHub)。
    • 当你使用 git@ 开头的 SSH 格式的仓库地址时,Git 客户端会使用本地的私钥与服务器上的公钥进行配对,如果配对成功,你将无需输入用户名和密码即可访问远程仓库。

使用 SSH 密钥的方式通常认为更安全,因为它们不需要在每次连接时输入密码。此外,SSH 密钥还可以配置密码短语(passphrase),为私钥提供额外的安全保护。

以下是使用 SSH 密钥进行 Git 操作的基本步骤:

  • 生成 SSH 密钥对。
  • 将公钥添加到你的 Git 服务账户(例如 Bitbucket 或 GitHub)。
  • 确保你的 Git 客户端配置为使用 SSH 密钥。
  • 使用 SSH 格式的仓库地址进行 Git 操作。
相关推荐
小怪兽会微笑4 分钟前
如何上传github(解决git的时候输入正确的账号密码,但提示认证失败)
git·github
Komorebi_999913 小时前
Git常用指令
git·web
一小池勺15 小时前
🚀 Git 如何让文件存在于远程仓库却不被本地追踪?
git·github
五月高高17 小时前
Idea使用git不提示账号密码登录,而是输入token问题解决
git
魏 无羡17 小时前
idea实现git版本回退的常见场景
java·git·intellij-idea
ergevv20 小时前
不同场景下git指令的搭配
git·源代码管理·代码
不了_谢谢21 小时前
项目仓库文件太大怎么清理?如何清理git仓库大文件记录?
git
nc_kai1 天前
Android Git操作
git
GUET_一路向前1 天前
【git】在Linux系统下clone指定分支
linux·运维·git