您的位置:

GitLab设置SSH Key详解

一、GitLab设置SSH Key

GitLab是一款开源的,基于Web界面的Git代码托管平台。SSH Key是GitLab中访问Git代码仓库的重要授权方式之一。若我们想使用SSH Key来访问GitLab上的代码仓库,我们需要以下步骤:

1、生成公/私钥对

ssh-keygen -t rsa -C "your_email@example.com"
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): /c/Users/you/.ssh/id_rsa_GitLab

2、将公钥(这里的id_rsa_GitLab.pub)添加到GitLab服务器中

cat ~/.ssh/id_rsa_GitLab.pub

在你的个人主页->设置->SSH密钥中添加SSH密钥即可。

二、GitLab设置SSH连接

若您当前还未在自己的计算机上设置过SSH Key,那么需要我们首先设置SSH连接。具体操作步骤如下:

1、安装Git

sudo apt-get install git

2、检查是否已经设置了SSH Key

ls -al ~/.ssh

如果已经设置过,你会看到以下内容:

-rw-------. 1 exampleuser exampleuser 1766 Jun 24  07:49 id_rsa
-rw-r--r--. 1 exampleuser exampleuser  406 Jun 24  07:49 id_rsa.pub

如果还未设置,OMG!你可以执行下面的命令生成新的SSH Key:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

三、GitLab设置SSH Key后仍然需要密码

如果你设置了SSH Key, 但是你仍然需要每次输入密码才能够访问GitLab上的仓库,你需要检查是否已经将存在的钥匙添加到agent的认证提供者中。参考下面的步骤:

1、确保你的内存钥匙需要添加

ssh-add -l

正常情况下,你会看到一些ID匹配的输出。

2、在本地添加钥匙

ssh-add ~/.ssh/id_rsa

如果你仍然需要输入密码,你可以创建文件~/.ssh/config,并将以下内容复制到其中:

Host gitlab.com
    Preferredauthentications publickey
    IdentityFile ~/.ssh/id_rsa

四、GitLab设置SSH公钥

一般情况下,你可以在电脑上终端中执行以下命令生成公钥:

cat ~/.ssh/id_rsa.pub

复制公钥,在GitLab上设置即可:

1、打开GitLab的页面,在右上角展开用户头像的下拉菜单,点击“Settings”,然后选中左侧的“SSH Keys”。

2、新建密钥并将生成的公钥添加到Key中。

五、GitLab设置SSH密钥

SSH Key由两部分组成:标识和密钥(公/私钥)。公钥用于授权,私钥用于身份认证。这里创建密钥的过程与创建公钥的过程基本相似。

1、在终端中打开SSH Agent:

eval "$(ssh-agent -s)"

2、为SSH Agent添加密钥

ssh-add ~/.ssh/id_rsa_yourkey

六、GitLab设置SSH端口

不同的GitLab服务器可能会运行在不同的SSH服务器端口上,而我们在通过SSH连接到服务器的时候需要知道服务器运行在哪个端口,否则我们将无法通过SSH网络协议连接到服务器。 可以在首页中选择“Settings”, 然后在 SSH Keys 中选择"Add SSH Keys",就可以输入相关的信息来添加SSH Keys了。

如果你需要自定义SSH端口,需要编辑~/.ssh/config文件添加如下内容:

Host gitlab.com
    Port 10022
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

七、GitLab SSH设置

GitLab中可以设置SSL证书,以及WebHooks等内容,我们在这里列出如何设置GitLab中的SSH。在右上角“头像->Settings->SSH Keys”点击Add SSH Key输入:

Title:ssh关键字
Key:(粘贴你电脑生成的公钥)

八、GitLab设置为中文

如果你想将GitLab页面设置成中文,只需要在你的个人主页--Settings--Preferences--Language中选择中文即可。

九、GitLab设置域名

如果你的GitLab服务部署在公共云环境中,建议使用自定义域名加以保护。可以通过DNS CNAME(别名)方式绑定自己喜欢的域名,具体操作如下:

1、在自己的DNS管理处增加一条CNAME记录指向自己的GitLab域名。

2、在GitLab的管理控制台中,设置自己的域名。

3、为了确保服务及时响应,可以在自己的DNS管理处设置DNS解析时间较短,如60秒。

下面是一个例子:

gitlab.example.com. IN CNAME _your_gitlab_url_.

执行完了哦!现在你可以快乐地享受GitLab带来的好处了!