Windows服务器下搭建基于SSH的GIT服务器.docx
- 文档编号:1219517
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:28
- 大小:708.55KB
Windows服务器下搭建基于SSH的GIT服务器.docx
《Windows服务器下搭建基于SSH的GIT服务器.docx》由会员分享,可在线阅读,更多相关《Windows服务器下搭建基于SSH的GIT服务器.docx(28页珍藏版)》请在冰点文库上搜索。
Windows服务器下搭建基于SSH的GIT服务器
Windows服务器下搭建基于SSH的GIT服务器
一、工具/原料
服务端软件
1、GitforWindows:
MsysGit(Git-1.8.1.2-preview20130201.exe),这是真正的git,高版本的安装在后面配置时有些不同。
2、OpenSSHforWindows:
CopSSH(Copssh_4.1.0_Installer.exe),这是一个windows平台的SSH服务器
服务器系统:
WindowsServer2008SP1
客户端软件
1、GitforWindows:
SourceTree(SourceTreeSetup_1.6.23.exe),Git和Hg客户端,同时也是Mercurial和Subversion版本控制系统工具
客户端系统:
Windows8.1
2、生成用户
1、在服务器上生成Windows用户,取消用户下次登录时须更改密码,设置密码永不过期
选中我的电脑,点击管理,进入计算机管理界面,点击系统工具下的本地用户和组,再点击本地用户和组下的用户。
进入以下界面
在空白处右击,选择新用户,输入用户名,密码等,点击创建,用户创建成功。
如图
说明:
我把这个“yichi”设为了系统管理员。
2、将该用户隶属于GitUser组(如尚未生成该组,则先生成该组)
点击本地用户和组下的组。
进入以下界面
在空白处右击,选择新建组,输入组名GitUser,点击创建,组创建成功。
如下图
在本地用户和组下的组中选择刚才新建的组GitUser,右击选择属性,添加成员,如下图
点击“确定”完成新建用户。
3、给GitUser组赋权限
如果我们要管理的仓库已存在,或者在后面创建仓库后,把仓库文件夹的权限赋给添加的用户组GitUser,如下所示:
仓库文件夹->属性->安全->编辑
3、服务器端安装及部署
1、安装Git
关于安装路径说明,最好放到每个盘的根目录下,这里我放到了D盘根目录下。
注意:
路径最好不要有空格,因为空格不好处理(需要转义符转义),所以这也是没有放到ProgramFiles目录下的原因。
接下来的几步,按照图片所示选择即可。
下面选择第三个,不去转换成unix的代码风格
等待安装完成即可
2、安装SSH
安装在根目录下,避免路径中有空格,造成不必要的麻烦。
此处是设置SSH启动服务的密码。
安装好后提示通过“COPSSHControlPanel”添加用户。
完成安装。
3、生成SSHkey
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要先在Git里面生成SHHKey,打开GitBash。
(1)检查SSHkeys是否存在:
查看路径C:
\Users\Administrator\.ssh,或者输入下面的命令,如果有文件id_rsa.pub或id_dsa.pub,则备份。
如果已存在文件的拥有者是想要创建的用户,则忽略步骤
(2),否则进入步骤
(2)生成SSHkey
$ls-al~/.ssh
#Liststhefilesinyour.sshdirectory,iftheyexist
(2)生成新的SSHkey
第一步:
设置Git的username和email
查看是否存在要添加key的用户,全局的通过vim~/.gitconfig来查看,局部的通过当前路径下的.git/config文件来查看,不存在则设置:
$gitconfig--globaluser.name"yichi"
$gitconfig--globaluser.email"sunyichi163."
第二步:
生成public/privatersakeypair
在命令行中输入:
$ssh-keygen-trsa-C"sunyichi163."
默认会在相应路径下(/your_home_path)生成id_rsa和id_rsa.pub两个文件,如下面代码所示:
$ssh-keygen-trsa-C"sunyichi163."
#Createsanewsshkeyusingtheprovidedemail
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/your_home_path/.ssh/id_rsa):
回车。
第三步:
输入passphrase(本步骤可以跳过,直接2个回车,密码为空)
设置passphrase后,进行版本控制时,每次与GitHub通信都会要求输入passphrase,以避免某些“失误”:
Enterpassphrase(emptyfornopassphrase):
[Typeapassphrase]
Entersamepassphraseagain:
[Typepassphraseagain]
样本结果:
Youridentificationhasbeensavedin/your_home_path/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/your_home_path/.ssh/id_rsa.pub.
Thekeyfingerprintis:
01:
0f:
f4:
3b:
ca:
85:
d6:
17:
a1:
7d:
f0:
68:
9d:
f0:
a2:
dbsunyichi163.
第四步:
将新生成的key添加到ssh-agent中
#startthessh-agentinthebackground
$eval"$(ssh-agent-s)"
Agentpid4280
$ssh-add~/.ssh/id_rsa
Enterpassphrasefor/your_home_path/.ssh/id_rsa:
Identityadded:
/your_home_path/.ssh/id_rsa(/your_home_path/.ssh/id_rsa)
以上所有配置如下图所示:
4、配置SSH用户
打开SSH控制面板(COPSSHControlPanel)
开始配置SSH用户。
选中“Users”选项卡,点击Add按钮添加用户。
选择用户名User,此处可以选择刚刚安装SSH时设置的“yichi”用户,也可以自己新建一个用户来作为管理账户。
注意AccessType选择“LinuxshellandSftp”,并把options的第一个选项“Allowpasswordauthentication”前面的勾去掉,因为我们要用公私钥来登陆,不用密码登陆。
点击“Apply”按钮完成添加用户,如下图。
点击右下方的“Keys”按钮,弹出窗口。
这里显示的就是ssh服务器中保存的公钥信息了。
若有公钥信息,用户就可以使用对应的私钥来远程登陆到ssh服务器进行相应的操作了。
第一次我们安装的时候,publickey里应该是空的,我们现在要做的,就是把上一步中,我们自己生成的公钥信息,添加到这里来,步骤如下。
找到COPSSH的安装目录(我这里是D:
\ICW),然后打开其中的home文件夹,可以看到里面有以我们刚加入的user的名字命名的文件夹,进入其中,打开.ssh文件夹。
在里面新建一个名字为authorized_keys的文件。
注意,这里没有任何后缀。
然后用记事本打开,然后将刚才配置git时生成的SSH公钥(id_rsa.pub)里的全部信息复制拷贝到这个文件里。
然后,保存退出。
回到COPSSHControlPanel中,将点击“Keys”产生的窗口关闭后,再打开,会看到其中有了一个公钥信息了,如下图:
5、确认防火墙开放了22端口,没有禁止22端口的TCP/IP通信
(1)通过单击「开始」按钮,再单击“控制面板”,然后单击“Windows防火墙”。
如下图所示:
(2)在左窗格中,单击“高级设置”。
如果系统提示您输入管理员密码或进行确认,请键入该密码或提供确认。
(3)在“高级安全Windows防火墙”对话框的左窗格中,单击“入站规则”,然后在右窗格中,单击“新建规则”。
(4)选择“端口”,点击“下一步”。
(5)选择“TCP”和“特定本地端口”,并在输入框中输入端口号“22”,点击“下一步”。
(6)选择“允许连接”,并点击“下一步”。
(7)如上图选择,并点击“下一步”。
(8)如上图,在名称中填写22,并点击“完成”。
在“高级安全Windows防火墙”中可以看到我们刚刚新建的端口号22,如下图所示。
6、登陆SSH服务器
到了这里,我们已经可以使用我们的私钥,来登陆这个ssh服务器了。
打开“GitBash”。
在命令行里输入:
$sshyichi192.168.61.17
yichi就是在COPSSH中配置的用户名,192.168.61.17是我的ip地址。
Areyousureyouwanttocontinueconnecting(yes/no)?
后面键入yes,回车,如下图:
运行如下unix命令行,如运行未出错,则完毕。
7、使用GIT命令
接下来你会发现,登陆成功以后,可以使用linux的命令,但是git的命令还是不能使用,别急,接下来我们解决这个问题。
使用的解决方法很简单,如下:
(1)将$Git\libexec\git-core目录下的git.exe,git-receive-pack.exe,git-upload-archive.exe,git-upload-pack.exe复制到$ICW\bin目录下;
(2)将$Git\bin目录下的libiconv-2.dll复制到$ICW\bin目录下;
(3)将$Git下的share目录整个拷贝到$ICW下。
其中,$Git是指Msysgit的安装目录,同理$ICW指CopSSH的安装目录。
至此,配置完毕,接下来,开始使用。
4、创建仓库,git服务器的测试
(1)打开“GitBash”,使用下面的命令连接到ssh服务器。
$sshyichi192.168.61.17
这个命令上面有说明。
(2)然后依次使用下列命令:
$cdd:
yichiebs-44324/cygdrive/d
$cdwork//
yichiebs-44324/cygdrive/d/work/
$mkdirtestgit
mkdir:
cannotcreatedirectory`testgit':
Fileexists
yichiebs-44324/cygdrive/d/work/
$rm-rftestgit
yichiebs-44324/cygdrive/d/work/
$mkdirtestgit//创建testgit文件夹
yichiebs-44324/cygdrive/d/work/
$cdtestgit//进入testgit文件夹
yichiebs-44324/cygdrive/d/work//testgit
$gitinit//版本库初始化,会以testgit为库名建立一个新库
InitializedemptyGitrepositoryinD:
/work//testgit/.git/
如果使用了gitinit初始化,则远程仓库的目录下,也包含worktree,当本地仓库向远程仓库push时,如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题),那么push后的结果不会反应在worktree上,也即在远程仓库的目录下对应的文件还是之前的容。
解决方法:
必须登录到远程的那个文件夹下使用命令gitreset--hard才能看到push后的容。
(3)创建first.txt和second.txt文本文档,并添加到Git。
注意:
下面这一步是必须的,否则没有生产分支master,无法在客户端进行任何操作。
$touchfirst.txtsecond.txt
$gitstatus
#Onbranchmaster
#Untrackedfiles:
#(use"gitadd
#
#first.txt
#second.txt
nothingaddedtocommitbutuntrackedfilespresent(use"gitadd"totrack)
$gitadd.//将所有文件添加至Git,注意add后面有一个空格和英文字符点号(.)
$gitconfig--globaluser.name“yichi”//设置用户名
$gitconfig--globaluser.email“sunyichi163.”//设置地址
$gitcommit-m“init”//将修改提交至Git,“init”为提交的容说明
[master(root-commit)fc36463]testaddtwofiles
2fileschanged,0insertions(+),0deletions(-)
createmode100644first.txt
createmode100644second.txt
$ls
first.txtsecond.txt
Git默认拒绝了push操作,需要进行设置,在Git仓库/.git/config文件后面添加如下代码:
[receive]
denyCurrentBranch=ignore
至此,就可以把代码push到服务器。
5、自己搭建git服务器用途
做了上面这些到底有什么用呢?
如果你是在自己家里上网,你可以在自己电脑上搭建一个git服务器,提供给你的朋友使用,可以和你的朋友一起开发一个东西,而且不用再一起就行,只要能连上因特网。
当然要做一个服务器,首先要能连接到外网,如果你处在路由器的局域网,需要做端口映射,ssh服务器的端口号是22。
6、客户端安装
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows 服务器 搭建 基于 SSH GIT
文档标签
- apachetomcatmysql服务器
- 有关服务器搭建
- 基于QoSWeb服务
- IISFTP服务器
- 服务器
- WWW服务器建设
- LINUXISCSITarget服务器搭建windows
- 搭建Windows基于Eclipse
- 基于linuxweb服务器
- DellPowerEdge1900服务器
- iisFTP服务器
- serverIISDNS服务器
- SSH服务
- 服务器组建
- Windows下搭建LDAP服务器搭建LDAP
- PHPApacheMysqL服务器
- ciscopackettracer服务器
- WINCCOPC服务器配置
- 服务器服务规划
- freeSSHd配置sftp服务器
- 配置DHCPFTPWEBDNS服务器
- 配置管理DNS服务器
- DNS服务器
- 外置DHCP服务器option43option60
- DNS服务器配置
- WEB服务器配置管理