centos7安装git踩坑记

之前自己是按照 Git 服务器搭建这篇博客来安装git服务器的,一步步顺序下来,但git clone的时候,每次都要求输入密码。说好的SSH免密登录呢。前后搞了一天多才搞定,现在记录下踩过的坑。

坑1:

那篇文章的原文:

复制代码
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

如果没有该文件创建它:

$ cd /home/git/
$ mkdir .ssh
$ chmod 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
复制代码

这边创建的文件夹,应该授权给git用户,所以应该再加一句:

$ chown -R git:git .ssh

坑2:

那篇文章没有提修改/etc/ssh/sshd_config下的配置文件。

在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,即:

1.RSAAuthentication yes     
2.PubkeyAuthentication yes     
3.AuthorizedKeysFile  .ssh/authorized_keys

修改配置之后,需要重启sshd

systemctl restart sshd.service

可以通过这个命令去测试SSH是否可连接:

 ssh -T git@192.168.1.85

然后在服务器,可以通过这个命令查看ssh状态

systemctl status sshd.service

坑3:

ssh可以连接了,但git clone的时候,报

fatal: protocol error: bad line length character: This

找到/etc/passwd,原文里面是说:

这样我们的 Git 服务器安装就完成了,接下来我们可以禁用 git 用户通过shell登录,可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:503:503::/home/git:/bin/bash
改为:
git:x:503:503::/home/git:/sbin/nologin

但就是这个nologin让我们报错了,应该改成:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

附Git创建仓库命令:

git init --bare demo.git
--将创建的库授权给git用户
/home/gitrepo/demo.git/ chown -R git:git demo.git

 

 
posted @   Gyoung  阅读(4838)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2012-10-31 Silverlight访问Wcf Ria Library的问题总结
点击右上角即可分享
微信分享提示