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 操作。
相关推荐
CC码码6 小时前
管理你的多个 Git 密钥(多平台多账号)
git·gitlab·github
CC码码6 小时前
管理你的多个 Git 密钥(单平台多账号)
git·gitlab·github
大卫小东(Sheldon)6 小时前
GIM 1.5发布了! 支持Windows系统了
git·ai·rust
flying jiang6 小时前
将大仓库拆分为多个小仓库
git
李boyang10 天前
Git(四):远程操作
git
荻野泽溪10 天前
Git新建分支并同步到远程
git
漫步企鹅10 天前
【Git】新建一个远程分支的常规操作
git·新建远程分支
潇-xiao10 天前
Linux下的版本控制器Git(15)
linux·笔记·git
@昵称不存在10 天前
Git学习
git·学习
pe7er10 天前
⛔️⛔️⛔️丢弃本地commit,强制采用远端代码
git