在 Git 中使用 SSH 密钥克隆仓库或分支
SSH Git 克隆提供了一种克隆远程仓库的安全方法。本教程展示了使用 SSH 密钥进行 Git 克隆的完整方法 - 如何生成 SSH 密钥、在 Git 中设置 SSH 以及使用 SSH 密钥进行 Git 克隆。
我们还展示了一些有用的选项来扩展该功能 - 只克隆一个分支,克隆到选定的目录,或者只克隆一些大型仓库的提交。
什么是 SSH
SSH 或安全 shell 协议是一种网络协议,用于在不安全的网络上使用安全服务。它使用公钥-私钥对 - 只有你在将公钥发送到你要使用的服务时才能访问你的私钥。
任何用你的公钥加密的数据只能用你的私钥打开,反之亦然。
为什么使用 SSH 密钥克隆 Git
SSH Git Clone 提供了一种通过不安全的公共网络安全地克隆远程仓库的简单方法。
如果你使用 SSH 密钥进行 Git 克隆,则不必每次都重新输入密码来向远程服务器表明自己的身份。一旦服务器对 SSH 代理进行身份验证,它就会记住详细信息 - 你不必每次都重新输入 SSH 密钥。
生成 SSH 密钥对
我们使用 ssh key-gen
命令生成一个 SSH 公私密钥对。
ssh key-gen
它将提示你输入密码以保护对客户端计算机上密钥的访问 - 你可以选择将其留空,或输入你喜欢的密码。
专业提示:输入密码时不会显示任何字符。这是为了隐藏密码的长度并增加安全性。
专业提示 2:在某处写下你的密码。如果你忘记了它,你将无法恢复你的访问权限。
我们在这里保留 ssh key-gen
命令的默认值,但我们也可以传入不同的选项——我们想要的加密算法(例如 ed2559)、标签、保存密钥的特定位置。
检查保存的 SSH 密钥对
我们检查我们的 SSH 密钥是否生成并正确保存。
ls -al ~/.ssh
密钥存储在你机器的 .ssh
文件夹中。id_rsa
文件保存私钥,而 id_rsa.pub
保存你的公钥。
如果你在输出中看到这两个文件,则你已成功创建并保存了一个 SSH 密钥对。
将 SSH 密钥添加到 SSH 代理
我们将 SSH 代理作为后台进程启动。
eval "$(ssh-agent -s)"
我们看到代理作为后台进程 970
运行。我们将 SSH 私钥添加到 SSH 代理。
ssh-add ~/.ssh/id_rsa
代理确认它已使用消息 Identity added : <path_to_private_key
添加了私钥。
将公钥添加到远程 GitHub 帐户
将公钥复制到剪贴板。
clip < ~/.ssh/id_rsa.pub
专业提示:始终复制 PUBLIC
键。切勿与任何人共享你的 PRIVATE
密钥。
-
转到你的
GitHub
帐户。 -
点击
个人资料图片
。 -
从下拉菜单中选择
设置
。
-
点击左侧栏中的
SSH and GPG Keys
。
-
点击右上角的
New SSH Key
。
-
添加描述,并将
PUBLIC
键粘贴到Key
字段中。
你现在已经成功地使用你的 GitHub 帐户识别了你的 SSH 代理。
测试与 GitHub 的 SSH 连接
我们测试与 GitHub 的 SSH 连接。
ssh -T git@github.com
该消息确认你已成功通过身份验证。
在 Git 中使用 SSH 密钥克隆仓库
接下来,我们使用 SSH 克隆我们的远程仓库。
- 复制你的仓库的 SSH URL
在 GitHub
的仓库中,单击右上角的代码
绿色按钮。
单击 SSH
以显示你的 SSH URL。复制此 SSH URL。
- Git 终端中的 Git Clone SSH
在 Git 终端中使用 SSH 克隆远程。
git clone <remote_repo_ssh_url>
<remote_repo_ssh_url>
是你在上面复制的 URL。
你已使用 SSH 密钥在 Git 中成功克隆了一个仓库。
使用选项扩展 Git 克隆 SSH
你可能需要针对你的用例使用特定类型的克隆。你可以使用一些选项通过 SSH 扩展 Git 克隆。
- Git Clone SSH Only 一个特定的分支
要使用 SSH 密钥仅克隆一个分支:
git clone --branch <branch_to_clone> <remote_repo_ssh_url>
这在大型仓库的情况下非常有用。为了节省本地机器上的时间和空间,你可能只想克隆你工作的分支或只克隆几个感兴趣的分支。
- 使用 SSH 密钥将 Git 克隆到特定位置
你可能希望克隆到特定文件夹以保持本地目录结构井井有条。
克隆到特定位置:
git clone <remote_repo_ssh_url> <specific_location_local>
- 使用 SSH 密钥进行浅层 Git 克隆 - 仅克隆少量提交
对于大型仓库,你可能希望减少克隆时间或节省本地磁盘空间。你可以通过仅克隆最后几个提交的选定集来做到这一点。
只克隆几个最近的提交:
git clone --depth=<n> <remote_repo_ssh_url>
这里 <n>
是你要克隆的最近提交的数量。
例如,如果 n = 2
,它将仅克隆最后两个提交。
相关文章
如何在 Windows 系统中卸载 git
发布时间:2023/04/09 浏览次数:223 分类:Git
-
在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。
Git 如何重命名本地分支
发布时间:2023/04/09 浏览次数:64 分类:Git
-
大多数情况下,重命名分支机构是由于上述情况。 因此,在本教程中,我们将学习使用下面提到的技术更改本地 Git 分支的名称。
重命名 Git 存储库中的文件和目录
发布时间:2023/04/09 浏览次数:102 分类:Git
-
在本文中,我们将讨论 git 中的重命名过程。 我们使用 Git Rename 来更改工作目录中文件和文件夹的名称。
在 Git 中取消初始化存储库
发布时间:2023/04/09 浏览次数:187 分类:Git
-
本本文介绍如何通过 Git 命令行取消初始化 Git 存储库。git init 命令开发一个新的空置 Git 存储库。 它还用于重新初始化已经存在的 Git 存储库。
Git 仓库名称该如何命名
发布时间:2023/04/09 浏览次数:208 分类:Git
-
使用 Git 时,选择一个简洁且最新的存储库名称是一项艰巨的任务。本教程介绍了如何以独特的方式命名 Git 存储库。
配置 Git 以忽略文件模式更改
发布时间:2023/04/09 浏览次数:67 分类:Git
-
本文讨论配置 Git 以忽略文件更改 chmod 所需的步骤。 如果您更改 Git 正在跟踪的文件的权限,系统将在该文件中注册更改。
在 Git 中暂存已删除的文件
发布时间:2023/04/09 浏览次数:93 分类:Git
-
本文讨论了在 Git 中暂存已删除文件的必要步骤。我们知道 rm 命令可以删除一个文件,而无需将其从工作目录中移除。 那么,我们如何暂存已删除的文件以进行提交呢?
在 Git 中显示冲突文件
发布时间:2023/04/09 浏览次数:139 分类:Git
-
本文讨论在 Git 中列出冲突文件的最简单和最干净的方法。 我们可以使用 git status 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。