2017-03-15 11:06:42 dickysun1987 阅读数 3754
  • Linux服务器运维/虚拟主机

    Linux服务器就是采用Linux系统的网络服务器,同时也有采用windows的服务器,作用是类似的。而Linux并不是一个特定的系统,而是使用Linux内核的系统, 现在发行版很多,Red hat只是其中一个发行版

    546 人正在学习 去看看 李强强

rz / sz命令可以将本地的文件上传到服务器或者从服务器上下载文件到本地,但是很多Linux系统初始并没有这两个命令。
安装

yum install lrzsz

sz命令发送文件到本地:

# sz <filename>

rz命令本地上传文件到服务器:

# rz

执行该命令后,在弹出框中选择要上传的文件即可。

安装后打开SecureCRT软件 ->传输-> X/Y/Zmodem 可上传下载文件

2019-09-30 15:16:28 weixin_41217671 阅读数 7
  • Linux服务器运维/虚拟主机

    Linux服务器就是采用Linux系统的网络服务器,同时也有采用windows的服务器,作用是类似的。而Linux并不是一个特定的系统,而是使用Linux内核的系统, 现在发行版很多,Red hat只是其中一个发行版

    546 人正在学习 去看看 李强强

title: 搭建本地yum服务器
tags: linux
categories: linux


1.在linux安装apache

我这里是拿kali虚拟机自带的apache做中间件。
dpkg -L apache2查看apache相关的文件,在/var/www下web网页放置

2.虚拟机挂载cent光盘


df -h列出文件系统、找出光盘的文件系统,
mount /dev/sr1 /mnt/cdrom挂载/dev/sr1到/mnt/cdrom

3.将光盘的安装包拷贝到web目录下

mkdir /var/www/centos创建目录 /var/www/centos

mkdir /var/www/centos/x86_64创建目录/var/www/centos/x86_64

mkdir /var/www/centos/extra创建目录/var/www/centos/extra

mkdir /var/www/centos/update创建目录/var/www/centos/update



cd /mnt/cdrom/

ls进入挂载光盘的目录 查看光盘文件
cp Packages/* /var/www/centos/x86_64/把 Packages/下的软件包复制到/var/www/centos/x86_64/目录下,

apt-get install -y createrepo下载createrepo,目的是生成repodata目录

createrepo -pdo /var/www/centos/x86_64 /var/www/centos/x86_64

createrepo -pdo /var/www/centos/extra /var/www/centos/extra

createrepo -pdo /var/www/centos/update /var/www/centos/eupdate

重启一下apache服务service apache2 restart

测试访问web网页,ip为虚拟机的




4.客户端配置访问yum源服务器
vim /etc/yum.repos.d/CentOS-Base.repo

yum clean all清除所有缓存
yum makecache重新下载缓存
可以发现已经可以了,现在测试一下,下载一个tree包试一下
yum install tree -y

可能cdrom里面的包不够多,我们同步一下163远程的包,用rsync协议
rsync -avrt --delete rsync://mirrors.163.com/centos/6/updates/x86_ 64/Packages/ /var/www/centos/update

2019-04-09 15:39:11 fenlin88l 阅读数 2359
  • Linux服务器运维/虚拟主机

    Linux服务器就是采用Linux系统的网络服务器,同时也有采用windows的服务器,作用是类似的。而Linux并不是一个特定的系统,而是使用Linux内核的系统, 现在发行版很多,Red hat只是其中一个发行版

    546 人正在学习 去看看 李强强

Linux服务器配置之Git服务器搭建步骤:

一、配置环境

1、服务器:lCentOS 7.2(64位) + Git (version 1.8.3.1)
2、客户端:Windows 10 Pro(64位) + Git(version 2.11.0.windows.1)
3、服务器连接软件:Xshell 6


二、配置步骤

1、安装git 服务端
Linux作为服务器端系统,Windows作为客户端系统,分别安装Git
服务器端

[admin@ceontOS ~]$ su root                  #切换到root用户名

Password:                                   #输入root用户的密码

[root@ceontOS ~]# yum install -y git        #执行该命令进行Git安装

 

安装完后,查看Git版本

[root@ceontOS ~]# git --version

git version 1.8.3.1

  

客户端
下载 Git for Windows,地址:https://git-for-windows.github.io/
安装完之后,可以使用 Git Bash 作为命令行客户端
安装完之后,查看 Git 版本

$ git --version

git version 2.11.0.windows.1

 

Git客户端安装具体可参考:Git安装及SSH Key管理之Windows篇

 

2、服务器端创建 git 户,用来管理 Git 服务,并为 git 用户设置密码

 

[root@ceontOS ~]# cd /home                                  #进入/home/目录

[root@ceontOS home]# id git                                 #查看git用户是否存在

id: git: no such user                                       #提示git用户不存在

[root@ceontOS home]# useradd git                            #创建git用户

[root@ceontOS home]# passwd git                             #为git用户创建密码

Changing password for user git.

New password:                                               #设置密码

BAD PASSWORD: The password is shorter than 8 characters

Retype new password:                                        #确认密码

passwd: all authentication tokens updated successfully.

  

 

3、服务器端创建 Git 仓库
设置 mkdir -p home/git/fenlin88l.git 为 Git 仓库

 

 

[root@ceontOS home]#mkdir -p home/git/fenlin88l.git   #在git用户目录下创建仓库目录git,并且创建fenlin88l.git项目测试目录

注:git  fenlin88l.git是自建目录  fenlin88l.git为仓库名
[root@ceontOS home]# ls      #查看/home/目录下有哪些用户目录
admin git
[root@ceontOS home]# cd git   #进入git用户目录
[root@ceontOS git]# ls      #查看git用户目录下有哪些目录/文件
 fenlin88l.git 

[root@ceontOS git ]# git init --bare ./fenlin88l.git    #这步很重要,初始化项目测试目录


Initialized empty Git repository in /home/git/fenlin88l.git/

 

然后把 Git 仓库的 owner 修改为 git

 

或执行  git init --bare home/git/fenlin88l.git

   

[root@ceontOS git]#  ll      #查看fenlin88l.git项目文件夹的拥有者
total 4
drwxr-xr-x 3 root root 4096 Jan 13 13:08 fenlin88l.git    #拥有者是root用户名


[root@ceontOS git]# chown -R git:git fenlin88l.git/    #将拥有者改为git用户

    
[root@ceontOS git]# ll      #再次查看fenlin88l.git项目文件夹的拥有者
  #拥有者是git用户 如下

   

 

4、客户端 clone 远程仓库

先在本地Windows系统上创建一个存放git项目的文件夹,例如我的设置在:【D:\git\fenlin88

  

此处通过Git Bash来创建的,当然也可以手动创建该目录,然后进入该目录,启动Git Bash

 #在桌面打开的git bash


$ cd d:   #进入D盘

   
$ mkdir git  #创建git文件夹
  
$ cd git   / #进入git文件夹创建fenlin88文件夹

 
$ git clone  git@服务器公网IP地址:/home/git/fenlin88l.git    #IP地址后面跟冒号,冒号后面是刚才初始化的项目文件夹的绝对路径

![](http://upload-images.jianshu.io/upload_images/2267589-7bedba534bdc9f04.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

例:  git clone git@47.107.193.147:/home/git/fenlin88l.git

 

当第一次连接到目标 Git 服务器时会得到一个提示:

The authenticity of host '118.178.142.77 (118.178.142.77)' can't be established.
ECDSA key fingerprint is SHA256:JwC9NxLIjBGqtLC2NUk8MulSc3XH3mM5AWMcFz0a5/8.
Are you sure you want to continue connecting (yes/no)? yes

选择 yes

Warning: Permanently added '118.178.142.77' (ECDSA) to the list of known hosts.

  

 

此时 C:\Users\用户名\.ssh 下会多出一个文件 known_hosts,以后在这台电脑上再次连接目标 Git 服务器时不会再提示上面的语句。

【说明】如果你的服务器没有配置SSH连接,那么按照正常情况会让你输入git用户的密码,输入正确后就能进行项目克隆了。

![](http://upload-images.jianshu.io/upload_images/2267589-776f44a088bba653.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 

如果不采用 SSH 公钥来进行验证,则每次都要输入密码,很麻烦,下面就来配置SSH公钥验证的方式来clone项目

 

 

   问题:如果不配置ssh公钥使用git远程仓库会怎么样,会出现以下:

          

5、客户端创建 SSH 公钥和私钥

 

ssh-keygen -t rsa -C "987679265@qq.com"

 

管理了多个ssh_key,所以这边给公私钥起了个名字:id_rsa_git,生成后需要进行**ssh-add**操作,如何管理多个ssh_key可以参考:[Git安装及SSH Key管理之Windows篇](http://www.jianshu.com/p/a3b4f61d4747)

![](http://upload-images.jianshu.io/upload_images/2267589-f781abf1bff6be8f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 

此时 C:\Users\用户名\.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub

id_rsa_git 是私钥

id_rsa_git.pub 是公钥

![](http://upload-images.jianshu.io/upload_images/2267589-a5b6810e27a15c93.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 

6、服务器端修改配置文件,打开 RSA 认证

进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:

[root@ceontOS ~]# sudo vi /etc/ssh/sshd_config    #root用户下,编辑/etc/ssh/sshd_config文件

 

按如下设置这三个配置,如果注释掉了,则去掉前面的#号

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存并重启 sshd 服务:

sudo service sshd restart  #重启sshd服务

 

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys

在 /home/git/ 下创建目录 .ssh

 

 

[root@ceontOS ~]# cd /home/git
[root@ceontOS git]# pwd
/home/git
[root@ceontOS git]# mkdir  .ssh
[root@ceontOS git]# ls  -a
. .. .bash_logout .bash_profile .bashrc repository .ssh

然后把 .ssh 文件夹的 owner 修改为 git

 

[root@ceontOS git]# chown -R git:git .ssh


[root@ceontOS git]# ll -a | grep .ssh
drwxr-xr-x 2 git git 4096 Jan 13 14:54 .ssh

 

7、将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件

回到客户端Git Bash 下,导入文件:

$ ssh git@服务器公网IP地址 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa_git.pub

![](http://upload-images.jianshu.io/upload_images/2267589-c0e6f9dc9b76225f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

回到服务器端,查看 .ssh 下是否存在 authorized_keys 文件:

[root@ceontOS ~]# cd /home/git/.ssh/
[root@ceontOS .ssh]# ll
total 4
-rw-rw-r-- 1 git git 398 Jan 13 15:03 authorized_keys
[root@ceontOS .ssh]# cat authorized_keys    #查看客户端生成的公钥

 

重要:

修改 .ssh 目录的权限为 700

修改 .ssh/authorized_keys 文件的权限为 600

[root@ceontOS git]# chmod 700 .ssh
[root@ceontOS git]# cd .ssh/
[root@ceontOS .ssh]# chmod 600 authorized_keys

 

  1. 客户端再次 clone 远程仓库

 Eg:

git clone git@118.178.142.77:/home/git/fenlin88l.git

![](http://upload-images.jianshu.io/upload_images/2267589-909ce2867f46f28c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 

9、禁止 git 用户 ssh 登录服务器

之前在服务器端创建的 git 用户不允许 ssh 登录服务器

编辑 /etc/passwd

[admin@ceontOS ~]$ su root   #切换到root用户
Password:
[root@ceontOS admin]# sudo vi /etc/passwd  #编辑/etc/passwd文件

找到:

git:x:1001:1001::/home/git:/bin/bash

修改为:

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

此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

 

 

 

Windows下客户端操作

在客户端打开Git Bash,然后将目录切换到指定文件夹下面下。执行下面命令,将该文件夹设为本地仓库

 

git init   初始化 

 

接着再执行如下命令,将本地仓库连接到服务器上的仓库:

git remote add origin git@公网服务器ip:/home/git/fenlin88l.git

 

简单说一:192.168.1.10是服务器的地址;“@”符号前面的git是服务器的登录名,如果前面没有添加组合git用户,也是可以用已经存在的用户名,冒号”:”的后面的是仓库所在的地址,如果地址前面有“/”使用的是绝对地址,如果没有,就是相对与登录用户的根目录下。接下来的其他操作就和前面说的向github.com上传文件一样了。可以到Git的简单使用看看。

Git仓库的克隆

有时我们需要在不同的电脑上使用同一份代码,这是就需要将代码从服务器上克隆下来。打开Git Bash,然后将目录切换到指定的目录下面,运行一下命令:

git init

git clone git@192.168.1.10:/home/git/fenlin88l.git

 

 

就可以将服务器上面的代码下载到本地。clone后面的命令和上面remote add origin 后面的代码的意思是一样的。

 

 

 

 

如果出现以下这种问题,解决办法:

https://blog.csdn.net/u014343528/article/details/48787221

 

1.在终端输入。

ssh-keygen -t rsa -C "username" (注:username为你git上的用户名)

如果执行成功。返回

 

或:

 

  https://blog.csdn.net/huahua78/article/details/52330792

   查看远端地址 git remote –v

查看配置 git config --list

     

#git status

    

  

git add .  // 暂存所有的更改

 git checkout . // 丢弃所有的更改

 git status // 查看文件状态

 git commit -m "本次要提交的概要信息" // 提交

 

设置远端仓库地址 git remote set-url origin 你的远端地址
git push origin master出现以下情况:

  

解决办法:删除当前key,然后重新生成key,

    

会在本地C:\Users\你的用户名.ssh生成文件夹,里面有id_rsa和id_rsa.pub两个文件
然后复制id_rsa.pub文件里面的内容,到https://github.com/settings/keys新建一个,

  

设置远程地址:(上面新建的)
git remote add origin_new 新的地址
git remote –v查看
git push origin_new master重新推送
下面是设置用户名
Git config –global user.name “用户名”
git config –global user.email 邮箱地址

设置代理:
git config –global https.proxy http://127.0.0.1:1080
取消设置代理:
git config –global –unset https.proxy

取消git init操作时出现 rm: cannot remove ‘.git’: Is a directory
是因为输入的命令是: rm -f .git
解决办法:rm -rf .git 即删除整个.git目录

failed to push some refs to ‘git@github.com:*.git’ hint: Updates were rejected ···
使用git push origin master的时候出现一下错误:

    

解决办法:
git push -f origin master或者git pull下

  

恢复不小心删除的 git stash 文件:

   git fsck  //找到dangling的对象

git show id  //上面列出的每一条记录的最后一个字符串,按 enter 查看具体信息

git stash apply id

 

Git回滚提交

     //reset将一个分支的末端指向另一个提交。这可以用来移除当前分支的一些提交, 让master分支向后回退了两个提交

git checkout master

git reset HEAD~2

//Revert撤销一个提交的同时会创建一个新的提交, 找出倒数第二个提交,然后创建一个新的提交来撤销这些更改,然后把这个提交加入项目中。

git revert HEAD~2

 

 

错误:Please enter a commit message to explain why this merge is necessary. 解决办法:
1. (可选)按键盘字母 i 进入insert模式
2. (可选)修改最上面那行黄色合并信息
3. 按键盘左上角”Esc” (退出insert模式)
4. 输入”:wq”,按回车键即可(提交)

gitignore notworking:

git rm -r --cached .

git add .

git commit -m "fixed untracked files"

 

git Failed to connect to www.google.com port 80: Timed out 可能是因为设置了代理:

git config --global http.proxy          //查看代理

git config --global --unset http.proxy  //取消代理

 

HTTP Basic access denied on Git:

git config --global --unset credential.helper

git clone '···'

login username,password

 

rebase 和 merge 区别

git pull --rebase origin master

 

rebase 选项告诉 Git 把你的提交移到同步了中央仓库修改后的 master 分支的顶部。rebase 操作过程是把本地提交一次一个地迁移到更新了的中央仓库master分支之上。这意味着可能要解决在迁移某个提交时出现的合并冲突,而不是解决包含了所有提交的大型合并时所出现的冲突。这样的方式让你尽可能保持每个提交的聚焦和项目历史的整洁。反过来,简化了哪里引入Bug的分析,如果有必要,回滚修改也可以做到对项目影响最小。

git pull origin master

 

如果没有 rebase, pull 操作仍然可以完成,但每次 pull 操作要同步中央仓库中别人修改时,提交历史会以一个多余的『合并提交』结尾。
合并玩冲突之后,git rebase --continue,Git 会继续一个一个地合并后面的提交,如其它的提交有冲突就重复这个过程。
如果你碰到了冲突,但发现搞不定,不要惊慌。只要执行下面这条命令,就可以回到你执行git pull –rebase命令前的样子:git rebase --abort

 

 

 

更多Git 教程系列文章: 

Git常用命令整理  http://www.linuxidc.com/Linux/2017-12/149316.htm

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git使用图文详细教程  http://www.linuxidc.com/Linux/2016-11/136781.htm

分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

Git从入门到学会 http://www.linuxidc.com/Linux/2016-10/135872.htm

Git基本操作详解 http://www.linuxidc.com/Linux/2016-10/135691.htm

Git部署与常用基本命令详���   http://www.linuxidc.com/Linux/2017-06/144961.htm

分布式版本控制系统 Git 详细教程  http://www.linuxidc.com/Linux/2017-05/143747.htm

Git命令和配置技巧  http://www.linuxidc.com/Linux/2017-11/148423.htm

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

 

本人微信 fenlin88l     QQ:987679265

 

 

2019-01-27 14:15:57 qq_43386754 阅读数 146
  • Linux服务器运维/虚拟主机

    Linux服务器就是采用Linux系统的网络服务器,同时也有采用windows的服务器,作用是类似的。而Linux并不是一个特定的系统,而是使用Linux内核的系统, 现在发行版很多,Red hat只是其中一个发行版

    546 人正在学习 去看看 李强强

在本地搭建本地GIT服务器

  • 如果要搭建本地的服务器,往往可以通过两类方式处理,要考虑windows环境,和linux环境.
  • 如果在windows中搭建需要一个模拟的Linux环境

使用CopSSH搭建GIT服务器

  • git本身最好的搭建环境是在linux中,但是很多团队还在使用windows系统,所以这个时候就需要一些模拟环境—CopSSh完成

  • CoopSSH工具是一个收费工具,本次使用旧版本进行环境搭建.

https://pan.baidu.com/s/1LfrA4cMtz7T0rxMLlJ8dYg
在这里插入图片描述

  • 在linux中所有的操作都是基于SSH链接是最方便的,所以请确保已经生成ssh key.
  • 进行CopSSH软件安装,选择安装路径

在这里插入图片描述

  • 如果要使用CopSSH需要建立一个账户,此时暂时为"copssh"密码为:123456

该用户作用于控制copssh的服务启动管理

在这里插入图片描述

如果要进行本地GIT服务搭建,如果要进行更加合理的管理,往往需要以下几种人员
- 版本控制人员:verman_*
- 程序开发人员:coder_*
- 程序测试人员:tester_*

  • 为了表示现在是一个开发者进行git操作,在windows中创建一个coder_yootk用户,密码设置为123456
  • 该用户最好有远程访问该计算机的权限,否则在客户端使用git克隆该服务器中的仓库时而能会出现错误

在这里插入图片描述

  • 打开copssh控制面板(copssh安装路径中的bin目录下的copssh.exe执行文件)
    • 首先会告诉用户Copssh服务已经打开了,需要在CopSSH的环境之中进行用户的配置,将coder_yootk账户信息配置到copSSH之中.

在这里插入图片描述

  • 选择 users – > add

在这里插入图片描述

  • 选项forward,选择刚才添加的windows用户 coder_yootk

在这里插入图片描述

  • 本次使用SSH的方式完成处理,所以不采用密码验证.

在这里插入图片描述

  • 随后点击 apply 所配置的使用的用户信息,就会自动出现在copSSH之中

在这里插入图片描述

  • 实际上这个时候只是告诉了COPssh有这样一个用户连接信息,但是这个用户还不能够进行登录,因为还需要配置SSH授权

"copSSHHome" 为你安装copssh软件的目录

  • 授权目录:copSSHHome\home\coder_yootk.ssh
  • 我的生成的SSH KEY的目录在:C:\Users\Xiemaoshu.ssh
  • 在coder_yootk.ssh目录下建立有一个authorized_keys文件,保存SSH账户的链接的信息.
  • 将电脑中的 公钥信息拷贝到authorized_keys文件中

在这里插入图片描述

  • 配置完成之后就可以在copssh的控制面板里面找到相应的配置信息.

在这里插入图片描述

  • 为了检测当前的配置是否成功,需要进行一下链接测试

    • 本机的ip地址:192.168.0.104
    • 打开git Bash 通过这个工具进行链接测试:ssh coder_yootk@IP地址
  • 输入 yes 进行连接,用户名会变为连接的用户名

在这里插入图片描述

  • 对于"coder_yootk的所有操作实际上都保存在了CopSSH的相关用户的目录之中

  • CopSSH和GIT现在是彼此独立的,因为CopSSH只是提供一个模拟环境,没有提供git命令,所以要配置映射路径,主要修改两个配置文件

    • copSSHHome\home\coder_yootk\.bashrc
    • copSSHHome\etc\profile
  • 在这两个配置文件里面需要加载相关的git的操作路径,有两个路径

    • GITHome\mingw64\bin
    • GITHome\mingw64\libexec\git-core

“GITHome”,是安装GIT的根路径

  • 修改etc/profile文件
  • 将第6行的 export Path 前面加上"#" 将这一行注释掉
  • 在第七行插入新的export Path
    • 每个路径要使用":"冒号分隔,所有路径需要用双引号包裹起来
    • 因为模拟的是linux环境,在linux环境下,路径的分隔符使用的是"/"表示,并且盘符不需要加冒号.
export PATH="/bin:$winpath:$winpath:/cygdrive/GITHome/mingw64/bin:GITHome/mingw64/libexec/git-core"

在这里插入图片描述

  • 修改coder_yootk.bashrc文件
  • 在文件最后一行追加以下内容
export PATH="/bin:$winpath:$winpath:/cygdrive/GITHome/mingw64/bin:GITHome/mingw64/libexec/git-core"

在这里插入图片描述

  • 当配置文件修改之后对于CopSSH的服务需要重新启动

在这里插入图片描述

  • 其实已经配置好了CopSSH于GIT的联合环境,随后将通过GITBash进行远程登录
  • 使用GIt Bash 登录 coder_yootk用户信息
  • 打开git Bash 通过这个工具进行链接测试:ssh coder_yootk@IP地址

在这里插入图片描述

  • 建立一个仓库的文件信息:名称maoshu.git(mkdir maoshu.git)
  • 进入到"maoshu.git"目录之中:(cd maoshu.git)
  • 初始化仓库:git init --bare:

在这里插入图片描述

  • 实际上这个时候的仓库地址就为 coder_yootk@IP地址:maoshu.git

  • 克隆此仓库

  • 打开cmd,进入到一个目录中

git clone coder_yootk@IP地址:maoshu.git
  • 由于此时的仓库中没有任何内容,所以它会提示你克隆了一个空的仓库

在这里插入图片描述

  • 克隆结果

在这里插入图片描述

  • 编写代码,随后进行代码推送
  • 在克隆出的仓库中,添加一个文件,然后使用git推送到服务器上

在这里插入图片描述

  • 使用cmd进入到以克隆好的仓库中,将新增的文件,推送到服务器端
e:
cd maoshu
git status 		#查看当前仓库状态
git add *  		#将所有工作区修改的文件添加到暂存区
git commit -m "注释内容"  	#提交到仓库
git push origin master		#将内容推送到远程仓库

在这里插入图片描述

在linux中搭建GIT服务器

  • 如果要在linux下搭建GIT操作实际上会非常的容易

  • 首先需要取得linux下的GIT工具包

  • 如果使用的是UBuntu系统,可以直接使用一下命令

apt-get install git
  • 如果是CentOS系统可以使用yum安装git
yum install -y git

在这里插入图片描述

  • 如果取得了开发包之后,输入git命令有所反应,就表示git可以操作了

在这里插入图片描述

  • 在/usr/local/ 目录中建立一个"git-work"的子目录,所有的仓库都保存到该目录
cd /usr/local
mkdir git-work

在这里插入图片描述

  • 需要进入到git-work的目录下进行操作
  • 在git-work目录之中创建一个 maoshu.git文件夹,作为初始化远程git仓库
git init --bare --shared maoshu.git

在这里插入图片描述

  • 在本次操作之中直接利用git的命令实现了仓库的创建,使用了如下两个参数

    • –bare:创建一个基础仓库
    • shared:所有的用户都具备此仓库的操作权限
  • 随后使用克隆的操作,将此仓库的内容克隆到本地:

    • 建立一个"/usr/local/myworks/"目录,
mkdir /usr/local/myworks/

在这里插入图片描述

  • 进入该目录

在这里插入图片描述

  • 进行远程仓库的克隆操作:在linux中使用ifconfig查看当前IP地址
git clone root@ip地址:/usr/local/git-work/maoshu.git
  • 此时需要你输入"yes"确认链接,然后输入 linux的"root"用户密码

在这里插入图片描述

  • 此时就可以将仓库克隆出来

  • 但是每次都进行密码输入有点麻烦,所以可以在linux中配置ssh,来达到免登录的操作

    • 为了保证操作安全,建议将之前的SSH删除掉:
rm -r ~/.ssh

在这里插入图片描述

  • 使用RSA的认证模式生成新的SSH KEY,本次都是用默认即可,一直回车
ssh-keygen -t rsa

在这里插入图片描述

  • 将公钥的信息拷贝到授权认证的文件之中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 再次测试克隆操作

在这里插入图片描述

  • 很多的开发者实际上都会使用windows进行,如果要想进行windows免登录控制,则需要手工修改"authorized_keys"文件,增加当前系统中的SSH 公钥信息
  • 使用VI编辑器打开"authorized_keys"文件
vim ~/.ssh/authorized_keys
  • 输入 i 进入编辑模式
    在这里插入图片描述
  • 将windows本地的SSH KEY的信息拷贝到文件之中:

在这里插入图片描述

  • linux
    在这里插入图片描述

  • 这种免登录的配置必须保证你的IP地址不会发生改变,否则这个SSH KEY的信息就会失效

  • 在windows中克隆linux服务器中的git仓库

git clone root@ip地址:/usr/local/git-work/maoshu.git

在这里插入图片描述

2017-08-28 15:03:07 dc282614966 阅读数 3069
  • Linux服务器运维/虚拟主机

    Linux服务器就是采用Linux系统的网络服务器,同时也有采用windows的服务器,作用是类似的。而Linux并不是一个特定的系统,而是使用Linux内核的系统, 现在发行版很多,Red hat只是其中一个发行版

    546 人正在学习 去看看 李强强

一、安装git

在Linux服务器和Windows客户端上分别安装git。

Linux服务器端:

[root@localhost ~]# yum install -y git

安装完成后查看git版本:

[root@localhost ~]# git --version
git version 1.8.3.1

客户端:

下载 git-for-window,地址:https://git-for-windows.github.io/

安装完成后查看git版本:

Administrator@ygzx-PC03 MINGW64 ~
$ git --version
git version 2.9.3.windows.2


二、Linux服务器和客户端配置

1.创建git用户,并设置用户密码
[root@localhost ~]# useradd git
[root@localhost ~]# passwd git
更改用户 git 的密码 。
新的 密码:
2.Linux服务器端创建git仓库

设置 /home/data/git/gittest.git 为 Git 仓库

然后把 Git 仓库的 owner 修改为 git

[root@localhost home]# mkdir -p data/git/gittest.git
[root@localhost home]# git init --bare data/git/gittest.git
初始化空的 Git 版本库于 /home/data/git/gittest.git/
[root@localhost home]# cd data/git/
[root@localhost git]# chown -R git:git gittest.git/

3.客户端clone远程仓库

进入 Git Bash 命令行客户端,创建项目地址(d:/git)并进入:

Administrator@ygzx-PC03 MINGW64 ~
$ cd d:/git

Administrator@ygzx-PC03 MINGW64 /d/git

然后从 Linux Git 服务器上 clone 项目:

$ git clone git@192.168.1.75:/home/data/git/gittest.git
Cloning into 'gittest'...
The authenticity of host '192.168.1.75 (192.168.1.75)' can't be established.
ECDSA key fingerprint is SHA256:nYFUFGu7QOGRxL9+4bSx/8kspjzp60tIeFEaA9ca1UU.
Are you sure you want to continue connecting (yes/no)?
输入yes,然后再输入git的密码:

Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.75' (ECDSA) to the list of known hosts.
git@192.168.1.75's password:
Connection to 192.168.1.75 closed by remote host.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Administrator@ygzx-PC03 MINGW64 /d/git
$


三、客户端创建 SSH 公钥和私钥

XXXXXXXXd代表自己的QQ号:
ssh-keygen -t rsa -C "xxxxxxxx@qq.com"
执行上述命令后得到如下结果:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:bfq1lz6O505WezZM1r0ROZJ/O0+7AycCbq9MskNQXFE 282614966@qq.com
The key's randomart image is:
+---[RSA 2048]----+
|      . .ooE     |
|       o      . .|
|      .      o + |
|     .   o    o =|
|      . S +    ==|
|       . = . o+o*|
|      ..o.. o *O+|
|       .=. o ==+*|
|       ..oo oB=++|
+----[SHA256]-----+

Administrator@ygzx-PC03 MINGW64 /d/git
$

此时C:\Users\Administrator\.ssh目录下面会多出两个文件,一个是私钥id_rsa,另一个是公钥id_rsa.pub


四、服务器端Git打开RSA认证

进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

保存并重启 sshd 服务:
[root@localhost ssh]# /etc/rc.d/init.d/sshd restart

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys

在 /home/git/ 下创建目录 .ssh

[root@localhost /]# cd /home/git
[root@localhost git]# pwd
/home/git
[root@localhost git]# mkdir .ssh
[root@localhost git]# ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .kshrc  .mozilla  .ssh

然后把 .ssh 文件夹的 owner 修改为git

[root@localhost git]# ll -a
总用量 20
drwx------  4 git  git    98 8月  28 16:15 .
drwxr-xr-x. 7 root root 4096 8月  28 15:28 ..
-rw-r--r--  1 git  git    18 11月 20 2015 .bash_logout
-rw-r--r--  1 git  git   193 11月 20 2015 .bash_profile
-rw-r--r--  1 git  git   231 11月 20 2015 .bashrc
-rw-r--r--  1 git  git   172 11月  3 2015 .kshrc
drwxr-xr-x  4 git  git    37 12月  9 2016 .mozilla
drwxr-xr-x  2 git  git     6 8月  28 16:15 .ssh
[root@localhost git]# 

五、将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件

回到 Git Bash 下,导入文件:
Administrator@ygzx-PC03 MINGW64 /d/git
$ ssh git@192.168.1.75 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
git@192.168.1.75's password:

Administrator@ygzx-PC03 MINGW64 /d/git
$
回到服务器端,查看 .ssh 下是否存在 authorized_keys 文件:

[root@localhost git]# cd .ssh
[root@localhost .ssh]# ll
总用量 4
-rw-rw-r-- 1 git git 398 8月  28 16:20 authorized_keys


修改 .ssh 目录的权限为 700

修改 .ssh/authorized_keys 文件的权限为 600

[root@localhost git]# chmod 700 .ssh
[root@localhost git]# cd .ssh
[root@localhost .ssh]# chmod 600 authorized_keys 

六、客户端再次clone远程仓库

git clone git@192.168.1.75:/home/data/git/gittest.git


查看客户端项目目录:

















没有更多推荐了,返回首页