gitblit自建git仓库

在Ubuntu服务器

安装 java

bash 复制代码
sudo apt-get update
sudo apt-get install openjdk-8-jdk		# 或者其它你喜欢的版本

//sudo snap install gitblit

验证:

bash 复制代码
java -version

下载 gitblit

bash 复制代码
https://github.com/gitblit-org/gitblit/releases

解压/usr/local

bash 复制代码
tar -zxvf gitblit-1.9.3.tar.gz

修改配置文件

nano /usr/local/gitblit-1.9.3/data/defaults.properties

bash 复制代码
git.sshPort = 29418       //修改ssh端口号,建议不修改。

nano /usr/local/gitblit-1.9.3/data/gitblit.properties

bash 复制代码
server.httpPort = 8078   //修改http端口号(方便用浏览器登录访问)
server.httpsPort = 0

nano /usr/local/gitblit-1.9.3/data/defaults.properties

bash 复制代码
git.sshAuthenticationMethods = publickey password
git.sshAuthenticationMethods = publickey

这会禁用基于密码的SSH登录,仅支持使用预先配置的SSH公钥进行身份验证。

客户端在连接时也需要相应地禁用密码和交互式认证,只保留publickey:

ssh -o PreferredAuthentications=publickey user@gitblit

打开防火墙端口29418,8078.自定义tcp协议。

启动gitblit

bash 复制代码
/gitblit.sh &

设置随系统自动启动

修改服务脚本 'service-ubuntu.sh',在change theses values (default values),

目录一定写正确,最好用cd /usr/local/gitblit-1.9.命令试下。不然会报错环境不正确。其实是没有找到gitblit的目录而已。

bash 复制代码
GITBLIT_PATH=/usr/local/gitblit-1.9.3             # 路径要对应
GITBLIT_BASE_FOLDER=/usr/local/gitblit-1.9.3/data # 路径要对应
GITBLIT_USER="root"                               # 建议使用 root 用户

重启自启动

bash 复制代码
./install-service-ubuntu.sh
/etc/init.d/gitblit start
bash 复制代码
sudo systemctl start gitblit
sudo systemctl enable gitblit
sudo systemctl status gitblit

在window或mac

get clone ssh配置

  1. 在powershell里执行命令 ssh-keygen -t rsa "",生成ssh密钥和公钥。
  2. 添加公钥到gitblit远程代码仓库中。

报错内容

bash 复制代码
Unable to negotiate with 192.168.77.12 port 29418: no matching host key type found. Their offer: ssh-rsa,ssh-dss
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

上面的报错的意思是没有匹配到类型为 ssh-rsa 或 ssh-dss 的主机秘钥。但明明配置了ssh-rsa密钥和公钥啊。为什么git会识别不到呢?原来最新版本的git需要配置一个config文件才能提交代码到远程的gitblit仓库中。mark

解决方案

在~/.ssh的config中配置

bash 复制代码
Host xxx.xxx.xxx.xxx 
HostName xxx.xxx.xxx.xxx 
User gitblit
Port 29418                               //防火墙放通,在服务器sshd_config不能配置Port 29418会冲突。
HostkeyAlgorithms +ssh-rsa               //在新版git版本中务必配置。不然会出现需要rsa文件等奇怪提示。
PubkeyAcceptedKeyTypes +ssh-rsa          //务必。此为大坑。mark。
IdentityFile ~/.ssh/id_rsa_subwindowsaws //chmod 600

注意:在windows的sourcetree程序:工具-选项,请选中ssh客户端为OpenSSH。

验证是否配置正确:

bash 复制代码
ssh -T gitblit@192.168.77.12
相关推荐
奇怪的点1 分钟前
git clone失败
git
WaiSaa44 分钟前
Ubuntu配置Git免密操作
git·ubuntu·gitee
牛奶咖啡131 小时前
Git实践——分支管理与标签管理及git个性化配置
git·禁用 fast forward·bug分支的创建与操作·远程分支的查看与推送·拉取仓库·推送指定分支到远程仓库·标签的创建与操作
千寻girling4 小时前
五一劳动节快乐 [特殊字符][特殊字符][特殊字符]
java·c++·git·python·学习·github·php
波特率1152005 小时前
git指令学习
git·学习
Karry_6665 小时前
[特殊字符] Git 提交项目 全套命令(按顺序执行)
git
计算机安禾6 小时前
【Linux从入门到精通】第39篇:版本控制Git服务器搭建——Gitea/GitLab私有化部署
linux·服务器·git
lst04266 小时前
Git 巨大失误案例记录 (2026-05-01)
大数据·git·elasticsearch
donecoding7 小时前
Git Worktree:一个仓库同时在多个分支工作,告别 stash 地狱
git
Shadow(⊙o⊙)7 小时前
git辅助工具
git