您的位置:

Git公钥配置详解

一、生成SSH key

首先在本地生成SSH key,生成的key将被绑定到你的Git账号, 用于进行ssh协议的身份验证。

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

命令解释:

  • ssh-keygen:用于生成SSH密钥。
  • -t rsa:指定密钥类型为RSA。
  • -b 4096:指定密钥长度为4096位。
  • -C:用于注释,表示SSH key所属的邮箱账号。

执行命令后会提示输入密钥保存路径,这里直接按回车即可,表示保存到默认的路径。

接着会提示输入密码,不输入即为无密码,输入后需要记住密码,否则下次使用SSH时需要重新输入。

输入密码后,SSH key生成完毕,包括公钥和私钥,公钥默认在~/.ssh/id_rsa.pub中,私钥默认在~/.ssh/id_rsa中。

二、添加公钥到Git账号

为了与Git账号建立联系,需要将新生成的公钥添加到Git账号上。

  1. 打开 GitLab 网站,点击右上角头像下拉框中的“Settings”,进入“User Settings”页面。
  2. 选择侧边栏中的“SSH Keys”选项卡,然后点击“Add SSH Key”按钮。
  3. 在“Add an SSH key”页面中,粘贴上一步产生的公钥内容。
  4. 设置一个有意义的Title(描述该 SSH Key 的名称)。
  5. 点击“Add key”按钮提交公钥。

至此,Git账号和本地ssh key已经关联成功。

三、测试SSH连接

配置完SSH key后,我们需要测试一下是否配置成功,以免出现意外在代码仓库的使用中遇到问题。

$ ssh -T git@gitlab.com

命令解释:

  • ssh:用于连接远程服务器。
  • -T:表示测试连接是否可用,连接成功会显示“Welcome to GitLab”。
  • git@gitlab.com:是GitLab的SSH连接地址,这个地址针对于你操作的不同的Git服务器而有所不同,需要自己去获取。

执行命令后,如果连接成功,则会输出:

Welcome to GitLab, @username!

其中,@username就是你的用户名。

如果输出不是以上内容,而是一些警告信息或者其他错误提示,那么说明SSH连接还存在问题,需要进一步排查。

四、使用SSH连接Git代码仓库

如果以上的步骤都顺利完成,就可以在使用Git时,将协议从HTTP切换为SSH了。切换后,以后每次向Git代码仓库推送代码的时候,都不需要再输入密码了。

例如,将进行远程克隆代码操作:

$ git clone git@gitlab.com:username/project.git

命令解释:

  • git:表示使用Git工具进行代码版本管理。
  • clone:表示进行代码克隆操作。
  • git@gitlab.com:username/project.git:是你想要克隆代码的地址,同样需要自己去获取。

执行完上述命令后,如果连接成功,则会将远程代码库的所有文件下载到本地进行版本控制。

五、撤销已添加的SSH key

如果某一天你不再想使用某个SSH key,那么你可以将这个SSH key撤销掉,操作如下:

  1. 在GitLab的“User Settings”页面中选择“SSH Keys”选项卡,找到要删除的SSH key选项。
  2. 点击右侧“Revoke”按钮,撤销该SSH key的访问权限。

如果有代码仓库在使用这个SSH key,那么撤销该SSH key后,这些代码仓库就会失去访问权限,需要重新配置SSH key。