方法一:使用 SSH 克隆

步骤 1:检查现有的 SSH 密钥

首先,检查您的系统是否已经生成了 SSH 密钥:

				
					ls -al ~/.ssh
				
			

查看是否存在 id_rsaid_rsa.pubid_ed25519id_ed25519.pub 文件。

步骤 2:生成新的 SSH 密钥(如果尚未生成)

如果您没有现有的 SSH 密钥,或者想生成新的密钥,可以按照以下步骤操作:

1.生成 SSH 密钥

使用以下命令生成新的 SSH 密钥。推荐使用 Ed25519 算法,因为它更安全且性能更好:

				
					ssh-keygen -t ed25519 -C "your_email@example.com"
				
			

如果您的系统不支持 Ed25519,可以使用 RSA:

				
					ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
				
			

2.按照提示操作

保存位置:默认位置通常为 ~/.ssh/id_ed25519,直接按回车即可。

设置密码短语:可以设置密码短语(推荐),也可以留空。

3.启动 SSH 代理并添加密钥

启动 SSH 代理:

				
					eval "$(ssh-agent -s)"
				
			

添加生成的 SSH 密钥到代理中:

				
					ssh-add ~/.ssh/id_ed25519
				
			

如果您使用的是 RSA 密钥,请相应地替换文件名。

步骤 3:将 SSH 公钥添加到 GitHub 账户

1.复制公钥内容

使用以下命令复制公钥内容到剪贴板:

				
					console.log( 'Code is Poetry' );
				
			

如果您使用的是 RSA 密钥,请相应地替换文件名。

复制输出的内容,例如:

				
					ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB... user@example.com
				
			

2.登录 GitHub 并添加公钥

•登录到您的 GitHub 账户

•点击右上角头像,选择 Settings(设置)。

•在左侧菜单中选择 SSH and GPG keys

•点击 New SSH key 按钮。

标题:为您的密钥命名,例如“Ubuntu 服务器”。

密钥:粘贴刚刚复制的公钥内容。

•点击 Add SSH key

步骤 4:测试 SSH 连接

在终端中运行以下命令测试 SSH 连接:

				
					ssh -T git@github.com
				
			

您应该会看到如下提示:

				
					Hi yourusername! You've successfully authenticated, but GitHub does not provide shell access.
				
			

步骤 5:克隆仓库

现在,您可以尝试再次克隆仓库:

				
					git clone git@github.com:AiTeleme/ms.git
				
			

方法二:使用 HTTPS 克隆

如果您不想使用 SSH,或者遇到配置问题,可以选择使用 HTTPS 克隆仓库。以下是详细步骤:

步骤 1:克隆仓库使用 HTTPS

使用以下命令通过 HTTPS 克隆仓库:

				
					git clone https://github.com/AiTeleme/ms.git
				
			

步骤 2:配置 Git 凭据(可选)

对于私有仓库,您需要提供 GitHub 的用户名和密码或使用 个人访问令牌(Personal Access Token) 进行身份验证。建议使用个人访问令牌,因为 GitHub 已停止支持密码认证。

a. 创建个人访问令牌

1.登录到 GitHub 账户设置

2.点击 Generate new token

3.输入 Note(例如:“Ubuntu 服务器访问”)。

4.选择所需的 Scopes(权限),例如 repo 访问私有仓库。

5.点击 Generate token

6.复制生成的令牌并妥善保存。

b. 使用个人访问令牌进行身份验证

当您使用 HTTPS 克隆或推送时,Git 会提示您输入用户名和密码。此时:

用户名:您的 GitHub 用户名。

密码:您的个人访问令牌。

步骤 3:缓存 Git 凭据(可选)

为了避免每次操作都输入凭据,可以配置 Git 缓存凭据:

				
					git config --global credential.helper cache
				
			

默认情况下,凭据会缓存 15 分钟。您可以设置更长的缓存时间,例如一小时(3600 秒):

				
					git config --global credential.helper 'cache --timeout=3600'
				
			

或者,您可以使用更安全的 credential-store 来永久存储凭据:

				
					git config --global credential.helper store
				
			

注意:使用 credential-store 会将您的凭据以明文形式存储在本地。请确保您的系统安全。

其他注意事项

1. 确认仓库存在且您有访问权限

确保仓库 AiTeleme/ms 确实存在,并且您有权限访问该仓库。如果仓库是私有的,您需要确保您的 GitHub 账户对其有访问权限。

2. 避免以 root 用户操作

虽然可以以 root 用户执行 Git 操作,但出于安全性和管理的考虑,建议使用普通用户进行开发和部署任务。您可以创建一个新用户并赋予必要的权限:

				
					# 创建新用户(例如:deploy)
sudo adduser deploy

# 切换到新用户
su - deploy
				
			

然后,以该用户身份执行 Git 操作和部署任务。

3. 检查网络连接

确保您的服务器能够连接到 GitHub。您可以尝试以下命令测试连接:

				
					ping github.com
				
			

如果您使用的是 SSH,确保端口 22 没有被防火墙阻挡:

				
					telnet github.com 22
				
			

nc -zv github.com 22

4. 更新 Git 版本

有时,较旧的 Git 版本可能会导致问题。您可以检查并更新 Git:

				
					git --version

# 如果需要更新,按照以下步骤
sudo apt update
sudo apt install -y git
				
			

总结

您遇到的 Permission denied (publickey) 错误通常是由于 SSH 密钥未正确配置或未添加到 GitHub 账户导致的。通过上述两种方法(SSH 和 HTTPS)中的任意一种,您都应该能够成功克隆所需的 GitHub 仓库。

推荐步骤:

1.优先尝试使用 SSH 克隆

•生成 SSH 密钥。

•添加公钥到 GitHub。

•测试连接并克隆仓库。

2.如果不便使用 SSH,则使用 HTTPS 克隆:

•使用 HTTPS URL 克隆仓库。

•配置个人访问令牌进行身份验证。

如果您在操作过程中遇到任何问题,请随时提供更多详细信息,我将竭诚为您提供进一步的帮助!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。