`
oldbig
  • 浏览: 75893 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Git服务搭建及SSH密钥使用过程中遇到的坑

阅读更多

这是写给公司同事的教程,录于此,或许对别人也有点用处。

 

==》CentOs7安装git
     采用#yum install git      #git --version
     增加一个用户#useradd --home /home/gitusr gitusr
     此后可su到gitusr用户下进行操作:在home下建一个gitrepo目录,然后再建一个dbk-svr.git目录
     在其下执行>git init --bare
     这样就建了一个裸仓库(没有工作区的仓库,因为服务端不需要改动代码,只接收各客户端的改动,相当于一个中转站)
 
==》windows客户端(克隆及上传项目代码)
     安装git for windows,安装tortoiseGit(TortoiseGit-xxxx-64bit.msi)
 
     克隆远程代码(适用于代码已存在于远程服务器端):
     右键Git Clone,远程地址:gitusr@远程服务器地址(域名):/home/gitusr/gitrepo/dbk-svr.git
     如果在此过程中要求输入密码,则输入密码:xxxx(如果使用密钥,则不需输入密码,见后文)
 
     使用密钥对来增强安全性,并且免去输密码的麻烦:
     使用TortoiseGit的PuttyGen程序,生成一个密钥对,保存私钥为ppk文件。同时在生成的界面中将public key 字串复制出来,发给服务器管理员。
     如果有私钥,并且已在服务器设置好了公钥的话,请勾选Load Putty Key并且选择ppk文件,这样就会把远程的项目复制下来。
   
     上传代码在客户端也可以: 
     在项目目录下右键 Git create reposition here,把要同步的文件加入,然后commit,接着push(适用于项目原始代码在本机)
     这时remote url为: gitusr@远程服务器地址(域名):/home/gitusr/gitrepo/dbk-android.git
     使用密钥的方法同上。
     这样就可以把本地代码上传到远程了。
 
==》服务端和客户端的密钥设置注意
      为了增强安全性,并且省去每次输密码的麻烦,是在服务器主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的~/.ssh/authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。这丝毫不会影响提交的数据 — 访问主机用的身份不会影响提交对象的提交者信息。
     采用这种办法,比如说账户名字叫gitusr
     在客户端使用TortoiseGit的PuttyGen程序,生成一个密钥对,保存私钥为ppk文件。同时在生成的界面中将public key 复制出来(一定要复制出来,虽然这个公钥也存在ppk文件中,但是莫名其妙的会分行,如果复制ppk文件中的,貌似会有问题)。然后在服务器的gitusr的home下,建立.ssh文件夹,建立authorized_keys文件,并且把各个客户端的公钥串拷到此文件的末尾。
     然后在TortoiseGit端,有两个地方可以加载前面生成的ppk文件,一个是在clone一个项目的时候,选择load putty key,一个是在setting的remote下,有一个putty的标签,选择生成的ppk文件即可。
     这样的效果,就是各客户端在pull或push时,不用再输入gitusr的用户名和密码了。
     这个过程有几个坑:一是authorized_keys文件中的内容,windows下存的文件中拷过去会有问题(折行或者是前后的字串),总之要从界面考过去,否则ssh不认;还有就是.ssh目录和authorized_keys文件的权限,不能让除本用户之外其他任何用户有写权限,否则sshd也不认。
     ~/.ssh/authorized_keys
     Lists the public keys (DSA/ECDSA/RSA) that can be used for logging in as this user.  The format of this file is described above.  The content of the file is not highly sensitive, but the recommended   permissions are read/write for the user, and not accessible by others.

 

     If this file, the ~/.ssh directory, or the user's home directory are writable by other users, then the  file could be modified or replaced by nauthorized users.  In this case, sshd will not allow it to be used unless the StrictModes option has been set to “no”.
      其实这个不仅仅是使用Git的问题,对于一切ssh访问密钥来说,都是如此。
0
1
分享到:
评论

相关推荐

    centos中GIT服务器搭建及使用密钥连接.pdf

    本文将详细介绍如何在CentOS操作系统中搭建Git服务器以及如何通过SSH密钥实现安全连接,特别是针对Windows客户端的配置。 首先,我们需要在CentOS服务器上安装Git。可以通过`yum`包管理器来完成这一任务,执行`yum ...

    GIT服务器的搭建与使用

    这通常通过SSH密钥认证来实现,用户需要生成一对SSH密钥,并将公钥添加到Git服务器的授权密钥列表中。这样,每次连接时,客户端会自动使用私钥进行身份验证,而无需用户手动输入密码。这种配置方式极大地方便了远程...

    git+ubuntu+ssh服务器搭建过程.pdf

    整个搭建过程可以分为七个步骤:安装 Ubuntu 系统、更新系统、安装 OpenSSH 服务器端、修改 SSH 配置文件、重启 SSH 服务、安装 Git 相关工具、安装 Gitosis。 详细来说,第一步是安装 Ubuntu 系统。在安装过程中,...

    Windows服务器下搭建基于SSH的GIT服务器.doc

    生成SSH密钥通常是在Git Bash中进行,检查当前用户目录下的.ssh文件夹,如果已有密钥则备份,否则生成新的SSH key,通常使用`ssh-keygen`命令。 完成这些步骤后,需要在Git服务器上配置SSH公钥,将生成的公钥内容...

    同一台电脑上搭建GIT服务器和客户端

    在此过程中,我们需要使用 sudo apt-get install git 命令来安装 Git 软件,然后使用 sudo adduser git 命令来创建一个名为 git 的用户。 二、关于 Git 用户的创建和配置 在创建 Git 用户时,我们需要使用 adduser...

    Git Windows XP服务器搭建

    11. **配置客户端**:在客户端,如TortoiseGIT,需要配置SSH密钥路径,以便在进行Git操作时使用私钥进行身份验证。 12. **防火墙设置**:确保Windows XP的防火墙设置允许通过端口22(或自定义端口)的SSH连接,否则...

    git服务器的搭建

    如果未安装,可以通过包管理器进行安装,例如在Ubuntu系统中使用命令:`sudo apt-get install git`。 - 如果之前尝试搭建Git服务器时出现了问题,需要先清除之前的配置。使用命令:`sudo rm -rf /home/git` 来删除...

    个人总结搭建git服务器仓库采用无密登录方式以及TortoiseGit的用法

    客户端 A 电脑使用 ssh-keygen 命令生成公钥和密钥,然后将公钥导入到服务器 B 的/home/git/.ssh/authorized_keys 中。这样,客户端 A 电脑可以无密登录 Git 服务器。 5. TortoiseGit 的用法 TortoiseGit 是一个 ...

    windows下git服务器的搭建

    通过上述步骤,我们已经在Windows环境下成功搭建了一个Git服务器,并实现了通过SSH密钥进行无密码登录的方式。这种方式不仅提高了安全性,也极大地提升了开发效率。在未来的工作中,我们可以进一步探索更多Git的功能...

    在公司搭建自己的git服务器.zip

    总结起来,在公司搭建git服务器是一个涉及多个层面的过程,包括git环境的安装、SSH密钥的生成、服务器软件的选择与配置,以及权限管理。通过学习上述文档和资源,可以有效地掌握这一过程,并为团队构建一个稳定、...

    linux搭建git服务器

    ### Linux下搭建Git服务器知识点详解 #### 一、环境配置 **服务器端环境:** - 操作系统:CentOS 6.6 - Git版本:1.7.1 **客户端环境:** - 操作系统:Windows 10 - Git版本:2.8.4.windows.1 #### 二、Git的...

    ofbiz git 服务搭建

    本教程将详细介绍如何在本地环境中搭建OFBiz项目,并使用Git进行版本控制。 首先,确保你拥有以下基础环境: 1. JDK 1.7:Java开发环境,OFBiz需要1.7版本或以上。 2. Eclipse 4.0:一个流行的Java集成开发环境...

    git基础(git服务器搭建+git教程+git廖雪峰)

    Git是世界上最先进的分布式版本控制系统,它使得团队协作和项目管理变得更加高效和便捷。...通过阅读Git使用教程和廖雪峰的Git教程,你将能够深入理解Git的工作原理,并在实际项目中游刃有余地运用Git。

    liunx下搭建git服务器

    在Linux系统中搭建Git服务器是开发团队协作的重要一环,它可以帮助团队成员高效地管理和版本控制代码。Git作为分布式版本控制系统,其强大的功能和灵活性深受程序员喜爱。本篇将详细介绍如何在Linux环境下设置一个...

    Windows上搭建Git服务器.pdf

    在 Git 服务器搭建过程中,需要注意的一点是公钥认证的配置。如果不正确地配置公钥认证,可能会导致 SSH 登录失败。同时,需要确保服务器上的代码库文件夹拥有正确的权限,以便 Git 用户可以正常地提交代码。 Git ...

    搭建Linux Git服务器以及配置tortoiseGit

    总结,通过以上步骤,我们可以成功地在Linux上搭建Git服务器,并在Windows环境中使用TortoiseGit进行连接和版本控制。这个过程涉及到Git的安装和配置,SSH密钥的生成和管理,以及客户端的设置,确保了团队成员可以...

    64位中文GIT服务器

    2. **配置SSH密钥**:为了安全地与Git服务器通信,用户需要生成SSH密钥对,将公钥上传到服务器,私钥保留在本地。这使得每次推送或拉取代码时,服务器能够验证请求来源的合法性。 3. **安装TortoiseGit**:接着安装...

    windows上搭建git服务器 + copssh

    在Windows操作系统上搭建Git服务器,通常我们会选择使用CopSSH作为SSH服务器组件,因为Git原生并不支持Windows上的SSH服务。本文将详细介绍如何在Windows环境中利用Git和CopSSH来创建一个安全、高效的版本控制系统。...

Global site tag (gtag.js) - Google Analytics