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 操作。
相关推荐
2301_7671139813 小时前
点过“不再询问”就要检查:Claude Code权限文件也可能存着密钥
git·信息安全·claude code
江屿风20 小时前
【Git-组件】【Git入门:从文档灾难到版本掌控】流食般投喂
运维·笔记·git·组件·版本控制
程序员沉梦听雨20 小时前
【Git】fork工作流与上游同步
git
高调的涵涵4 天前
删了1.2GB,.git仍是1.2GB
git
程序员沉梦听雨4 天前
【Git】git-submodule子模块管理
git
全栈陈序员5 天前
Git】从入门到精通(八)—— git log:查看提交历史
大数据·git·elasticsearch
7177775 天前
Git自建用什么工具比较好:Gitea、Forgejo、GitLab CE与Gitee的选型对比
git·gitlab·gitea
lsc_blog6 天前
年底还在招的岗位,先确认缺口和到岗要求
git·缓存·ci/cd·职场和发展·github
全栈陈序员6 天前
【Git】从入门到精通(十一)—— git reset 三种模式详解
git·elasticsearch
全栈陈序员6 天前
【Git】从入门到精通(十)—— 撤销与恢复:git checkout与git restore
运维·网络·数据库·git