现在云计算这么发达,基本上每个人都多少有几台Windows或者Linux服务器运行在云端,要直接进入这些服务器进行配置就需要使用类似远程桌面或者Putty这类的工具,虽然大多数Windows电脑都自带
顺晟科技
2021-06-16 10:59:34
182
Git可以使用四种主要协议传输数据:本地传输、ssh协议、Git协议和HTTP协议。
Git最常用的传输协议是ssh。大多数环境已经支持通过ssh访问服务器,ssh是支持读写操作的网络协议。另外两种网络协议(HTTP和Git)通常是只读的。Ssh也是一种验证授权的网络协议。由于它的通用性,很容易架设和使用。
本文主要介绍如何构建基于ssh协议的Git服务器。
首先你需要一台有sudo权限的Linux机器。本文使用的是Debian 7.0 x32。从下面开始安装:
$ sudo apt-get install git
$ sudo adduser git
有几种方法可以让团队中的每个成员都能访问:
给大家都建个账户。重复使用adduser,给每个人设置临时密码,很麻烦。
在服务器上设置一个Git账号,让每个需要写权限的人发一个ssh公钥,然后添加到~/。Git帐户的ssh/authorized_keys文件。这样每个人都会通过Git账号访问主机。
另一种方法是让ssh服务器通过一个LDAP服务或其他设置的集中式授权机制进行授权。
在这里,我们使用第二种方法来收集所有需要登录Git服务器的用户的公钥,也就是他们自己的id_rsa.pub文件,并将所有的公钥导入到/home/git/中。ssh/authorized_keys文件,每行一个。(注:/home/Git/。ssh/authorized_keys是git的所有者,如果不是,请使用chown命令修改它。).
以下是创建公钥命令:
$ ssh-key gen-t RSA-C ' you email @ domain.com '
-t指定密钥类型,默认情况下是rsa,可以省略
-设置注释文本,如您的电子邮件地址
有关创建公钥的更多信息,请参考http://github.com/guides/providing-your-ssh-key.
出于安全原因,您可以使用git附带的git-shell工具来限制git用户的活动范围。这可以通过编辑/etc/passwd文件来完成。找到类似以下内容的行:
将bin/sh改为/usr/bin/git-shell(或者使用哪个git-shell来查看其实际安装路径)
git : x :100:1003:/home/git:/bin/bash
替换为:
git : x :100:1003:/home/git :/usr/bin/git-shell
现在git用户只能使用ssh连接推送获取Git资源库,不能直接使用服务器的shell。如果您尝试正常ssh登录,您将被拒绝登录。
选择一个目录作为Git仓库,如/home/git/project.git,在/home/git/directory下输入命令:
$ sudo git init - bare project.git
Git会创建一个空仓库,没有工作空间。因为服务器上的Git仓库是为了共享,所以不允许用户直接登录服务器改变工作空间,服务器上的Git仓库通常以。蠢货。然后,将project.git的所有者改为git:
$ sudo chown -R git:git项目. git
Ssh指定私钥的配置管理,为本地添加ssh别名,编辑~/。ssh/config,如果没有这样的文件,则创建一个:
$ vi ~/。ssh/配置
添加配置:
#请注意主机别名HostName域名或用户登录服务器时使用的帐户端口号(默认值为22,可以留空,但如果服务器修改ssh登录端口号,则需要在此处修改)。标识文件密钥文件的位置
例如,设置为:
# bingdian的git server host git server hostname 162 . 188 . 23 . 33用户gitPort 9000IdentityFile ~/。ssh/server_rsa
现在,您可以通过git clone命令克隆远程仓库:
$ git clone ssh ://git @ gitserver :/home/git/project . git
然后你可以享受你的Git之旅。
15
2022-09
15
2022-09
31
2021-07
16
2021-06
16
2021-06
16
2021-06