赞
踩
由于公司一些私密业务不适合托管在Github上,因此在Linux搭建了Git服务器,方便和windows进行交互,并且在同一局域网内,安全问题得到了保障。
总的来说,就是在Linux配置了服务器端和客户端,在windows配置了客户端。
sudo apt-get install git
git --version
如果显示当前版本号,说明安装成功
adduser git
passwd git
连续两次输入密码后即可
查看 Git 账户是否创建成功
cd /home && ls -al
如果有 git 说明安装成功
切换到 git 账户
su git
进入 git 账号的用户主目录
cd /home/git
在用户主目录下创建 test.git
仓库的文件夹
mkdir test.git && cd test.git
在 test.git
目录下初始化 git 仓库
git init --bare
其中 git init --bare 是在当前目录创建一个裸仓库,也就是说没有工作区的文件,直接把 git 仓库隐藏的文件放在当前目录下,此目录仅用于存储仓库的历史版本等数据。
仓库的路径为:/home/git/test.git
进入 git 账户的主目录
cd /home/git
创建 .ssh 的配置,如果此文件夹已经存在请忽略此步
mkdir .ssh
进入 .ssh 目录并创建 authorized_keys
文件,此文件存放客户端远程访问的 ssh 的公钥
cd /home/git/.ssh
touch authorized_keys
设置权限
chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys
服务端配置到此全部完成
由于是与服务端放在同一主机下,在安装服务端时已经安装
设置用户名和邮箱
git config --global user.name "client_username"
git config --global user.email "example@mail.com"
查看是否存在 ssh keys
cd ~/.ssh
创建 ssh keys
ssh-keygen -t rsa -C "example@mail.com"
碰到需要输入的地方直接按回车键,最后创建成功后的结果如下
将生成的文件复制到 git 目录下
cp /root/.ssh/id_rsa.pub /home/git/.ssh/test.pub
将 test.pub 文件中的内容追加到 authorized_keys 中
cat test.pub >> authorized_keys
创建本地文件夹
mkdir test_project && cd test_project
克隆远程仓库
git clone git@ip地址:/home/git/test.git
这时候,会提示克隆的仓库是空的,现在仓库的确是空的,所以没有报错
ls 查看目录下是否存在 test 文件夹,如果存在,说明克隆成功
设置用户名和邮箱
git config --global user.name "client_username"
git config --global user.email "example@mail.com"
进入目录 C:\Users\你的用户名 查看是否有 .ssh 文件夹,此文件夹下是否有如下两个文件
如果没有,那么用 ssh-keygen 创建 ssh 的私钥
ssh-keygen -t rsa -C "example@mail.com"
手动将公钥添加到服务器中,先找到 C:\Users\你的用户名.ssh\id_rsa.pub 这个文件所在目录
把本地的 id_rsa.pub 文件拷贝到 git 服务器
scp ./id_rsa.pub root@你的ip地址:/home/git/.ssh/test.pub
登录服务器,找找上一步上传的 test.pub 文件,目录为 /home/git/.ssh/
将 test.pub 文件中的内容追加到 authorized_keys 中
cat test.pub >> authorized_keys
当然,上面这一步也可以省略,不需要把密钥添加到服务器中添加信任,只需要在进行下一步操作即克隆远程仓库地址的时候,输入你创建git用户的密码即可。
创建本地文件夹
mkdir test_project && cd test_project
克隆远程仓库
git clone git@ip地址:/home/git/test.git
这时候,会提示克隆的仓库是空的,现在仓库的确是空的,所以没有报错
ls 查看目录下是否存在 test 文件夹,如果存在,说明克隆成功
在上一步克隆的 test 文件夹中新建一个文件 test.txt
在当前目录中打开
git status
git add -A
git commit -m "test add"
git push origin master
如果出现如上提示,说明本地提交成功
切换到服务器端,进入 1.3 步骤中创建的文件夹下(请根据实际情况输入目录)
cd /test_project/test
git pull
如果出现如上提示,说明更新成功
如果要拉取服务器最新提交的代码或者文件,执行以下命令即可。
git pull
由于一般默认使用22端口访问linux,怕遭受攻击,所以一般会修改ssh的默认访问端口。
步骤一,首先修改配置文件
vi /etc/ssh/sshd_config
找到#Port 22一段,这里是标识默认使用22端口,修改为如下:
Port 22
Port 18522
保存退出
更改完端口号后sshd服务新端口号还无法使用,因为firewall及SELinux还不允许该端口号通过
步骤2,添加此端口号至防火墙,允许端口号通过防火墙
firewall-cmd --zone=public --add-port=18522/tcp --permanent
如上图所示正常情况下不会有图上错误,因为我已经添加过了此端口号所有会有提示,注意末尾的success,表示添加成功!
步骤3,重新加载防火墙,并重启防火墙服务
firewall-cmd --reload
并没有报错,我们也可以查看一下防火墙运行状态
running,说明防火墙运行正常
步骤4,检查SELinux服务是否运行
如上图显示enabled表示SELinux已启用
步骤5,使用semanage命令查看当前SELinux当中ssh运行端口号
如上图所示第一次查看的时候SELinux默认情况下ssh服务只启用了22号端口号,因此我们使用
semanage port -a -t ssh_port_t -p tcp 18522 命令将我们需要添加的端口加到SELinux内使SELinux允许sshd服务使用此端口号登陆
再次查看端口号已经多了18522号端口
步骤6,重启sshd服务
如上图所示并未提示错误,查看运行状态 systemctl status sshd.service 显示running
到这里新的端口号已经添加并且可以进行登录了,先看看测试机IP地址,然后我们在测试一下
步骤7,登录测试,
如上图所示,已经登录成功,并且使用了自己更改过后的端口号,修改成功,
步骤8,到这里还未结束,既然使用了新端口号,那就把默认端口号注释掉吧,(只需要把它从防火墙规则内剔除就无法使用此端口进行登录动作)
如上图所示由于测试之前我已剔除了此端口所以会有提示,最后在重新载入防火墙规则即可
若想要删除自己添加的端口号可使用命令:
semanage port -d -t ssh_port_t -p tcp 65222(这是我自己修改的端口号)
方法一、直接修改URL为SSH://开头
打开gitbash,进入仓库,输入指令:
git remote set-url origin ssh://git@ip:18522/home/git/YourProject/project.git
其中,
1:Git仓库的地址
2:仓库的端口号
3:仓库名字和地址
方法二、修改本地配置文件
打开gitbash,进入仓库,输入指令: vim .git/config,或者windows下进到仓库文件夹,进入.git 用编辑器打开config文件,
在url=后面写上自己的服务器地址,端口号和仓库地址,格式同方法一。
设置完毕后,打开gitbash,执行git pull 指令,若能成功pull下代码,则表明git端口修改成功。
至此,整个 Git 服务的部署与使用就全部搭建完成.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。