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 操作。
相关推荐
韭菜炒大葱7 小时前
Git入门指南:掌握版本控制的核心工作流程
git·面试
用户6600676685398 小时前
Git 入门指南:掌握版本控制的核心概念与命令
git
小生不才yz9 小时前
(一)仓库创建与配置 - .git 目录的结构与作用
git
三坛海会大神55510 小时前
CICD(一)CI/CD概述及GitLab部署和一些Git命令
git·ci/cd·1024程序员节
荣光波比17 小时前
CICD(一)—— 从零搭建 GitLab 全流程(Docker 部署 + 实战指南)
git·ci/cd
摇滚侠1 天前
VScode 提交代码 Git
git
YuforiaCode1 天前
移除原有 Git 仓库关联,在IDEA中重新初始化 Git 并推送到新仓库(详细图解、包含相关问题的解决办法)
git
UIUV1 天前
Git程序员入门笔记:从零开始掌握分布式版本控制
git
星光不问赶路人1 天前
彻底清理 Git 分支:从查看到批量删除无效分支的全流程指南
git·github
如果是君2 天前
【git使用】ubuntu下利用git工具提交一个工程
linux·git·ubuntu