• ubuntu 10.6 环境下git服务器的配置及问题的解决


    1.安装git :

    $sudo apt-get install git

    2.创建一个git用户,用来运行git服务

    $sudo adduser git

    3.使用命令$sudo su git切换到git用户,进入git用户的主目录/home/git,则这个目录下创建.ssh文件,在这个目录中创建文件authorized_keys文件,用来保存需要登录的用户的公钥。

    目录的文件结构为:/home/git/.ssh/authorized_keys

    (注:此时要注意authorized_keys的所属的用户和组,使用ll命令查看,如果不是属于上例所创用户git,可使用chown更改,运行命令:#chown -R git:git authorized_keys)

    4.初始化Git仓库:

    先选定一个目录作为Git仓库,我的选择是在/home/git/创建目录srv(目录结构为/home/git/srv),然后在srv目录中输入命令:

    $sudo git init --bare sample.git

    注:在这个过程中,可能遇到问题"git is not in the sudoers file. This incident will be reported."其中git是你的用户名,也就是你的新建的用户名没有权限使用sudo,我们只要需改一下/etc/sudoers文件即可。

    首先要切换到root用户,使用命令$sudo su - (提示:注意su后面的 -),此时的效果是如root超级用户登录一样。

    切换到root超级用户后,此时请输入命令:$chmod u+w /etc/sudoers (给这个文件添加写权限)

    再次,使用vim命令打开/etc/sudoers文件,然后在内容中添加语句:git ALL=(ALL) ALL

    效果如图(git是新添加的用户名):

    编辑后退出,然后使用命令将文件的写权限去除:

    $chmod u-w /etc/sudoers

    5.Git就会创建一个裸仓库,该仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去更改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

    $sudo chown -R git:git sample.git

    6.克隆远程库:

    在实体主机(去别虚拟机)的桌面上运行git客户端,运行命令:

    $git clone git@ip地址:sample的绝对地址

    例如:

    初次运行时,可能出现如下的选择,输入yes即可。

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

    7.客户端创建SSH公钥和密钥

    运行命令:$ssh-keygen -t rsa -C "邮件地址"

    在目录:~/.ssh(即C:Users用户名.ssh)中可以看到生成的两个文件:id_rsa 和 id_rsa.pub

    其中id_rsa是私钥,id_rsa.pub是公钥

    8.在服务器端Git打开RSA认证

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

    RSAAuthentication yes

    PubkeyAuthentication yes

    AuthorizedKeysFile %h/.ssh/authorized_keys

    例如:

    改为:

    然后再重新启动sshd服务:

    # /etc/init.d/ssh restart

    返回数据:

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

    登录到git bash,导入keys文件:

    $ssh git@IP地址 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

    如图:

    此时可查看在服务器上的authorized_keys中是否出现了id_rsa.pub中的内容。

    重要:

    修改.ssh的目录权限为700

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

    运行命令:

    #chmod 700 .ssh

    #chmod 600 .ssh/authorized_keys

    运行结果如下:

    10. 客户端此时可使用git clone克隆远程仓库。

    11.禁止git用户ssh登录服务器

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

    编辑/etc/passwd

    找到:

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

    修改为:

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

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

    12.配置完成后,在windows客户端使用git bash工具一系列命令即可实现类github的上传和下载:

    $git config --global user.email "邮件地址"

    $git config --global user.name "用户名(如此文中的git用户)"

    $git remote add origin git@IP地址:远程库的绝对地址(/home/git/srv/sample.git)

    $git add .

    $git push -u origin master (注:若出现问题可以先pull一下:$git pull origin master)

    13.注意:

    当使用git status命令时,若出现下面的提示:

    即执行git rm命令即可。

    例如上例中的那样:(test1.txt为新添加的文件)

    #git rm --cached test1.txt 

  • 相关阅读:
    angular-指令
    microbit 范例课程
    microsoft 为microbit.org 设计的课程
    Microbit 翻译计划及IDE 中文化
    Microbit MicroPython 介绍
    micro:bit 软件生态系统介绍
    Microbit 硬件架构介绍
    TCP协议和UDP协议下的socket
    爬虫-链家二手房
    函数相关
  • 原文地址:https://www.cnblogs.com/zhushunli/p/6568025.html
Copyright © 2020-2023  润新知