方法一:使用 SSH 克隆
步骤 1:检查现有的 SSH 密钥
首先,检查您的系统是否已经生成了 SSH 密钥:
ls -al ~/.ssh
查看是否存在 id_rsa 和 id_rsa.pub 或 id_ed25519 和 id_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 克隆仓库。
•配置个人访问令牌进行身份验证。
如果您在操作过程中遇到任何问题,请随时提供更多详细信息,我将竭诚为您提供进一步的帮助!