Git代码仓库与RSA认证连接

许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。

首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其~/.ssh目录下。

Git官方文档 链接:https://git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Key

ssh配置

1. 首先我们打开sshd服务配置,打开指定认证用配置

$ vim /etc/ssh/sshd_config

2. 将默认注释符(#)去掉即可,结果如下

Port:指定端口号为22

Protocol:指定ssh协议版本为2

PermitRootLogin:允许root账号登录

RSAAuthentication:开启rsa安全验证

PubkeyAuthentication:开启公钥认证

AuthorizedKeysFile:设置用户公钥文件存储位置

3. 接着保存并重启sshd服务,让配置生效

$ service sshd restart

如果是第一次配置sshd,可通过设置系统自动启动sshd

4. 由于AuthorizedKeysFile设置的公钥存放路径是,实际上是home目录下用户目录,而我们是用git用户,所以目标目录应该是

5. 创建完成后将拥有者修改为git

客户端创建密钥并连接

1. 首先,在客户端创建一个ssh连接密钥,指定验证方式是rsa(默认为dsa加密算法),并输入自己的email

创建了公钥和私钥,会提示保存位置,如不想改变密钥位置且无密码,几次确认后,和linux类似,会保存到当前用户下的目录,默认为和文件。

2. 接着,将客户端公钥导入服务器端(将替换为服务器IP地址)

3. 确认时还需要输入git用户密码,成功后回到服务器端查看是否存在文件,并修改权限

ssh登录验证对于权限校验很严格,是以确保不出现安全问题,以上权限更改为必须的步骤。

4.客户端上再次clone仓库(将替换为服务器IP地址,仓库目录改成指定仓库目录),测试是否成功

5. 成功后,限制git用户通过ssh登录服务器,编辑文件

$ vim /etc/passwd

6. 找到git用户的记录,将其中默认的改更为,实际如下

后记

通过这种方式,之后对项目进行操作,都将通过配置好的rsa认证直接登录,免去诸多麻烦,而除了使用rsa加密算法,还有dsa加密算法,知道为什么有时候我们选择rsa进行加密吗?在实际应用场景中两者之间有什么区别呢?请听下回分解~

\(•ㅂ•)/ 共勉~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180616A10F6900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券