Gitlab 添加 SSH-key

使用 SSH 协议传输文件的时候,需要把 SSH Client 端的密钥放到 Server 端中,因此需要在本地机器把生成的 SSH Key 复制到 Gitlab 中,这样就可以使用 SSH 协议在 Gitlab 上 clone 和 push 代码,否则就会提示缺少公钥:

git@code.xxx.org: Permission denied (publickey,gssapi-with-mic).
fatal: Could not read from remote repository.

这一点和使用 https 协议不同,https 协议 ( http + TLS ) 在 TLS 握手的过程中, Client 和 Server 会将彼此的的密钥信息交换给对方。比如 curl 和 wget 就是使用 TLS 协议来完成密钥的交换,通过查看它们的依赖库可以发现,wget 使用了 libgnutls 库,而 curl 同时使用了 libssl 和 libgnutls 这两种实现 TLS 协议的库。

> $ ldd /usr/bin/wget | grep -E "tls|ssl"
    libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f25b6183000)

> $ ldd /usr/bin/curl | grep -E "tls|ssl"
    libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fac32dd8000)
    libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fac32698000)

Gitlab 添加 SSH-key

1、Client 端生成密钥对

ssh-keygen -t rsa -C "YOUR EMAIL"

完成后在 ~/.ssh/ 会生成2个文件。id_rsa 和 id_rsa.pub。前者是私钥,注意保管,后者是公钥。

2、添加 SSH Key 到 GitLab

登录 GitLab 之后: Profile Settings => SSH Keys => Add SSH key

将 id_rsa.pub 中的内容全部复制到 Gitlab 中,然后为这条密钥记录起一个名字用来识别。

 

 

 

 

 

 

 

posted @   KernelHe  阅读(1359)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示