SSH密钥用于在您的电脑和GitLab建立安全连接。那么应该如何连接?
我搜的chatgpt,跟着它连接好的。先把chatgpt的内容展示出来。后面是我的连接过程。
我搜的chatgpt。
使用SSH密钥与GitLab通信
Git是一种分布式版本控制系统,允许你在本地工作,然后将更改分享或推送到服务器。在这种情况下,推送的服务器是GitLab。GitLab使用SSH协议来安全地与Git进行通信。当你使用SSH密钥认证到GitLab远程服务器时,每次都不需要输入用户名和密码。
什么是SSH密钥
SSH使用两个密钥,一个公钥和一个私钥:
- 公钥可以分发。
- 私钥需要保护。
上传公钥不会暴露数据,但上传时要确保不会误上传私钥。你可以使用私钥签署提交,从而使GitLab和你的数据更加安全。这种签名可以通过任何使用公钥的人验证。
先决条件
使用SSH与GitLab通信,你需要:
- OpenSSH客户端(GNU/Linux、macOS和Windows 10预装)。
- SSH版本6.5或更高版本。早期版本使用的MD5签名不安全。
查看系统中安装的SSH版本,运行命令 ssh -V
。
支持的SSH密钥类型
GitLab支持以下SSH密钥类型:
- ED25519
- ED25519_SK(GitLab 14.8及更高版本)
- ECDSA_SK(GitLab 14.8及更高版本)
- RSA
- DSA(GitLab 11.0弃用)
- ECDSA
查看现有的SSH密钥对
查看是否已有密钥对:
-
进入你的主目录。
-
进入
.ssh
子目录。如果不存在,说明你没有使用过SSH。 -
查看是否存在以下格式的文件:
- 公钥:
id_ed25519.pub
、id_rsa.pub
等 - 私钥:
id_ed25519
、id_rsa
等
- 公钥:
生成SSH密钥对
如果没有现有的SSH密钥对,生成新的:
-
打开终端。
-
运行命令
ssh-keygen -t <密钥类型> -C "<注释>"
,例如:ssh-keygen -t ed25519 -C "your_email@example.com"
-
按提示操作,生成公钥和私钥。
将SSH公钥添加到GitLab账户
-
复制公钥文件的内容。例如,在macOS上:
tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy
-
登录GitLab。
-
在右上角选择头像,点击
Edit profile
。 -
在左侧栏选择
SSH Keys
。 -
在
Key
框中粘贴公钥内容。 -
添加描述并选择用途,然后点击
Add key
。
验证连接
- 打开终端,运行命令
ssh -T git@gitlab.example.com
。 - 如果首次连接,会提示验证GitLab主机的真实性,输入
yes
并回车。 - 再次运行命令
ssh -T git@gitlab.example.com
,应该会看到 "Welcome to GitLab, @username!" 消息。
故障排除
- 如果运行
git clone
时提示输入密码,确保你正确生成并添加了SSH密钥。 - 手动注册私钥,使用命令
eval $(ssh-agent -s)
和ssh-add <私钥路径>
。
按照以上步骤,你可以成功配置并使用SSH密钥与GitLab进行安全通信。
我跟着它的步骤一步步实现的。
首先在设置>系统>可选功能
下载好后win+R,打开终端。
cd %USERPROFILE%
输入'cd .ssh'出现问题,就说明没有.ssh。
cd .ssh
没有.ssh怎么办?
创建目录:
mkdir .ssh
再
cd .ssh
生成SSH密钥对:
配置自己的邮箱"your_email@example.com"
ssh-keygen -t rsa -b 2048 -C "your_email@example.com"
按提示操作:
- 系统会提示你选择保存密钥文件的路径,按回车使用默认路径(
C:\Users<你的用户名>.ssh\id_ed25519
或id_rsa
)。 - 系统会提示你输入一个passphrase(密钥密码)。你可以选择输入,也可以直接按回车跳过(不推荐)。
打开生成的公钥文本,复制。自己的C路径是啥样自己看。
notepad C:\Users\Shanshan\.ssh\id_rsa.pub
win+R打开终端。
@gitlab.example.com是自己的gitlab的地址。
ssh -T git@gitlab.example.com
成功了!