我之前好久没有使用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 可以通过两种主要方式进行身份验证:
-
基于账户名和密码:
- 这种方式通常与 HTTPS 协议的远程仓库地址一起使用。当你使用
https
开头的 Git 仓库地址克隆、拉取(pull)、推送(push)代码时,系统会提示你输入用户名和密码。这可以是 Bitbucket、GitHub 或其他 Git 服务的账户凭据。
- 这种方式通常与 HTTPS 协议的远程仓库地址一起使用。当你使用
-
基于 SSH 密钥:
- 这种方式使用 SSH 协议,需要你设置 SSH 密钥对。SSH 密钥对包括一个私钥和一个公钥。私钥保留在你的本地计算机上,而公钥需要添加到你想要访问的 Git 服务账户中(例如 Bitbucket 或 GitHub)。
- 当你使用
git@
开头的 SSH 格式的仓库地址时,Git 客户端会使用本地的私钥与服务器上的公钥进行配对,如果配对成功,你将无需输入用户名和密码即可访问远程仓库。
使用 SSH 密钥的方式通常认为更安全,因为它们不需要在每次连接时输入密码。此外,SSH 密钥还可以配置密码短语(passphrase),为私钥提供额外的安全保护。
以下是使用 SSH 密钥进行 Git 操作的基本步骤:
- 生成 SSH 密钥对。
- 将公钥添加到你的 Git 服务账户(例如 Bitbucket 或 GitHub)。
- 确保你的 Git 客户端配置为使用 SSH 密钥。
- 使用 SSH 格式的仓库地址进行 Git 操作。