配置 Git 使用 SSH 可以提高安全性、方便自动化操作、提供更好的性能,并允许更精细的权限管理,是一种推荐的 Git 配置方式。
在 Git 中配置 SSH 有以下几个好处:
加密通信:SSH 使用加密技术来保护数据在传输过程中的安全。通过 SSH 连接进行 Git 操作时,你的代码和版本控制信息在网络上传输是加密的,降低了被窃听或篡改的风险。
无需担心密码泄露:与使用 HTTPS 协议并输入用户名和密码不同,SSH 密钥对一旦设置好,就无需在每次操作时输入密码。这减少了密码被泄露的可能性,尤其是在不安全的网络环境中或通过自动脚本进行操作时。
无密码操作:对于频繁进行的 Git 操作,如持续集成 / 持续部署(CI/CD)流程中的代码拉取和推送,使用 SSH 可以避免频繁输入密码的麻烦。这使得自动化流程更加顺畅和可靠。
脚本友好:在编写脚本进行 Git 操作时,使用 SSH 可以更容易地集成到自动化任务中,无需处理密码输入或存储密码的问题。
通常更快:在一些情况下,SSH 连接可能比 HTTPS 连接更快,尤其是对于大型项目或频繁的操作。这是因为 SSH 连接可以保持持久状态,减少了建立连接的开销。
SSH 密钥可以与特定的用户或系统关联,允许更精细的权限管理。例如,你可以为不同的项目或团队成员设置不同的 SSH 密钥,并在服务器端配置相应的权限,从而更好地控制对代码仓库的访问。
执行 ssh-keygen 命令,生成一个密钥对,如下:
C:\Users\Administrator> ssh-keygen -t rsa -C "hxstrive@outlook.com" Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\Administrator/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\Administrator/.ssh/id_rsa Your public key has been saved in C:\Users\Administrator/.ssh/id_rsa.pub The key fingerprint is: SHA256:arUOeZQJ76d6m3jiGqpO8+XMLk0tqR3O/DJPxxBHhEg hxstrive@outlook.com The key's randomart image is: +---[RSA 3072]----+ | .E. oo | | . .. | | .. . | | ooo | | o.S | | = Bo. | | o X.B.+o. | |. o+=@o=++ | |oo..+BOB=. | +----[SHA256]-----+
进入到 C:\Users\Administrator/.ssh 目录:
其中:
id_rsa:这是私钥文件,必须严格保密。它包含用于加密和解密通信的密钥信息,只有拥有该私钥的用户才能解密由对应的公钥加密的数据。在 SSH 连接中,当你尝试连接到一个远程服务器时,你的本地系统会使用这个私钥来证明你的身份。
id_rsa.pub:这是公钥文件,可以公开分享。它包含与私钥对应的公钥信息,用于加密发送给拥有私钥的用户的数据。当你将这个公钥添加到远程服务器(如 Git 服务器)的授权列表中时,服务器可以使用这个公钥来验证你的连接请求。
登录到 gitlab,点击“Add SSH key”按钮添加 SSH KEY,如下图:
到这里就配置我拿了,你就可以通过 git@协议访问了……