版本控制在软件开发中至关重要,而 Git 是广泛使用的代码管理工具。偶然,我们可能需要在多个平台 (如 GitHub、GitLab 和 Gitee) 上同步同一 Git 堆栈,以便备份、协作等。
本文将带你玩转此操作,其中关键是“配置 SSH” 和“远程堆栈”。起首,我们来讲述 SSH 的配置。
配置 SSH
为确保安全和简化登录,需配置 SSH 密钥。SSH 密钥是用于身份验证的安全方式,可免密访问远程 Git 堆栈。
查抄现有 SSH 密钥
在生成新的 SSH 密钥之前,应该查抄本地电脑是否存在现有密钥。打开终端,输入一下下令以检察是否存在现有的 SSH 密钥。此下令将列出 .ssh 目录中的所有文件(如果存在)。如果没有想要的,需要创建新的 SSH 密钥对。
生成新 SSH 密钥
在本地电脑上生成新的 SSH 密钥。 生成密钥后,可将公钥添加到 GitHub 等平台上的帐户中,以便通过 SSH 为 Git 操作启用身份验证。
打开终端输入一下下令,然后一起 Enter 键,完成密钥对的生成:- ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_github
复制代码 在这个下令中:
- ssh-keygen 用于生成、管理和转换认证密钥的工具。
- -t 指定了密钥类型。ed25519 是一种现代的、安全的公钥加密算法,被广泛认为是非常强大且高效的。与 RSA 和 DSA 密钥相比,它提供了更好的安全性和性能。
- -C 指定一个注释,通常是用户的电子邮件地址。
- -f 指定了密钥文件的保存位置和名称。默认环境下,ssh-keygen 会生成名为 id_rsa、id_ed25519 等的文件,具体取决于所选的密钥类型。在这里,它将被保存为 ~/.ssh/id_github (私钥) 和 ~/.ssh/id_github.pub (公钥)。
相关链接:
编辑 ~/.ssh/config 文件
为了在一台电脑上配置多个平台的 SSH,你需要编辑 ~/.ssh/config 文件。以下是一个配置示例,分别配置了 GitHub、GitLab 和 Gitee 的 SSH:- # GitHub 配置
- Host github.com
- HostName github.com
- User git
- IdentityFile ~/.ssh/id_github
- PreferredAuthentications publickey,password # 优先使用 SSH 公钥认证,然后再尝试用户名和密码认证
- IdentitiesOnly yes
- # GitLab 配置
- Host gitlab.com
- HostName gitlab.com
- User git
- IdentityFile ~/.ssh/id_gitlab
- PreferredAuthentications publickey # 仅使用 SSH 公钥认证
- IdentitiesOnly yes
- # Gitee 配置
- Host gitee.com
- HostName gitee.com
- User git
- IdentityFile ~/.ssh/id_gitee
- PreferredAuthentications publickey # 仅使用 SSH 公钥认证
- IdentitiesOnly yes
复制代码 在这个配置中:
- Host 是你定义的别名,可以随意命名,但通常使用服务域名以方便记忆。
- HostName 是实际的服务域名。
- User 通常是 git,因为这是大多数 Git 服务器的默认用户名。
- IdentityFile 指向你的私钥文件路径。
- PreferredAuthentications 指定 SSH 客户端在尝试身份验证时应优先思量的认证方法列表。例如,你可以设置为只使用公钥认证,或者优先使用公钥认证,然后再尝试其他 (密码) 认证方式。
- IdentitiesOnly yes 指示 SSH 只使用 IdentityFile 指定的身份进行认证,这有助于制止 SSH 代理或默认私钥的干扰。
新增 SSH 密钥到平台帐户
配置 ~/.ssh/config 文件完毕后,必须将 SSH 公钥添加到 GitHub、GitLab 和 Gitee,才能为帐户启用 SSH 访问。
相关链接:
测试 SSH 毗连
设置 SSH 密钥并将其添加到 GitHub、GitLab 和 Gitee 后,可以测试毗连。
测试 SSH 毗连之前,应已完成以上所有步调。
打开终端,输入以下下令:- ssh -T git@github.com # 测试 Github 的 SSH 连接
- ssh -T git@gitlab.example.com # 测试 Gitlab 的 SSH 连接。注意:要将 gitlab.example.com 替换为你的实例 URL
- ssh -T git@gitee.com # 测试 Gitee 的 SSH 连接
复制代码 如果这是你第一次毗连,你应该会看到雷同以下消息,提示你需要验证平台主机的真实性:- > The authenticity of host ' (IP ADDRESS)' can't be established.
- > ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
- > Are you sure you want to continue connecting (yes/no)?
复制代码 输入 yes,然后按 Enter。- > Hi USERNAME! You've successfully authenticated, but GitHub does not
- > provide shell access.
复制代码 添加成功后,就可以使用 SSH 协议访问这些平台了。例如,你可以使用 git clone <远程仓库URL>git@github.com/username/repository.git 来克隆 GitHub 上的堆栈,SSH 会根据 ~/.ssh/config 文件中的配置来选择合适的私钥进行身份验证。
相关链接:
我们为电脑配置完 SSH 后,接下来为本地 Git 堆栈添加多个远程平台的堆栈链接。
配置远程堆栈
没有 Git 堆栈
为 Git 堆栈添加多个远程平台的堆栈的前提是得有个本地 Git 堆栈。如果你还没有,可以用以下下令初始化一个。- cd your_folder
- git init --initial-branch=main
复制代码 已经有 Git 堆栈
如果你已经在其中一个平台上有个 Git 堆栈,你可以使用以下下令将其克隆到本地。然后,cd 到新初始化、或者克隆下来的堆栈目录,添加其他平台的远程堆栈链接
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |