Gitlab配置ssh提交代码和服务器部署密钥【第四步】

Gitlab配置ssh提交代码

终于到了最后一步,这里说一下私钥提交代码

生成密钥

cd ~/.ssh
# 输入名称后,连续2个回车。如果不需要密码的话。
ssh-keygen -t rsa -C "xxxxx@qq.com"

gitlab账号添加ssh

设置config

因为我这里用的是ip+端口,如果你是域名,填写域名即可 IdentityFile 后面是用于通讯的私钥 IdentitiesOnly 表示只支持密钥登录

# 腾讯服务器部署的git
Host http://xxx.xxx.xxx.xxx:18080/
  HostName http://xxx.xxx.xxx.xxx:18080/
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab
  IdentitiesOnly yes

增加hosts

vi /etc/hosts
# 增加如下配置
xxx.xxx.xxx.xxx http://xxx.xxx.xxx.xxx:18080/

ssh -T 测试

ssh -T git@http://xxx.xxx.xxx.xxx:18080/

如果匹配成功会有如下提示

Welcome to GitLab, 罗阳!

解决clone和push的时候遇到输入服务器密码的原因

这问题着实困扰我几天,,也怪自己知识点太薄弱

前提是你要确定你的gitremote_urlssh方式而不是Http方式

1.clone代码提示输入密码

2.push代码提示输入密码

🎉🎉🎉🎉 解决办法:

确保 ssh-agent 是可用的。ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。

查看pid

eval "$(ssh-agent -s)"
Agent pid 59566

添加生成的 SSH key 到 ssh-agent。

#### cd到项目目录, ssh-add 后面是和gitlab的私钥
ssh-add ~/.ssh/gitlab

以上的办法我之后两天试了下还是不行[重要]

最后我重新生成了ssh密钥用了,在选择名字的时候,没有输入名字一路回车,用了默认的id_rsa,然后问题就解决了...

下面说一下gitlab里面的添加成员和四种模式的区别

访客

访客:具有查看私有仓库权限(只能查看,其他啥也干不了)

报告者

报告者:具有查看,克隆 私有仓库权限(只能查看和下载)

开发人员

开发人员:具有查看,克隆,提交除master分支之外的权限(除了不能提交master分支都可以)

主程序员

主程序员:具有项目代码基本的所有权限

配置部署密钥

当然服务器那边还是要做 生成密钥,配置config,增加hosts,添加生成的 SSH key 到 ssh-agent步骤

ok!!

就酱紫了....睡觉

😘 😘 😘 😘 😘 😘