Windows服务器下搭建基于SSH的GIT服务器Word文档下载推荐.docx
- 文档编号:22642345
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:28
- 大小:710.45KB
Windows服务器下搭建基于SSH的GIT服务器Word文档下载推荐.docx
《Windows服务器下搭建基于SSH的GIT服务器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Windows服务器下搭建基于SSH的GIT服务器Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
2、给GitUser组赋权限
如果我们要管理的仓库已存在,或者在后面创建仓库后,把仓库文件夹的权限赋给添加的用户组GitUser,如下所示:
仓库文件夹->
属性->
安全->
编辑
三、服务器端安装及部署
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"
sunyichi@"
第二步:
生成public/privatersakeypair
在命令行中输入:
$ssh-keygen-trsa-C"
默认会在相应路径下(/your_home_path)生成id_rsa和id_rsa.pub两个文件,如下面代码所示:
#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:
a2:
dbsunyichi@
第四步:
将新生成的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”。
在命令行里输入:
$sshyichi@192.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的安装目录。
至此,配置完毕,接下来,开始使用。
四、创建仓库,git服务器的测试
(1)打开“GitBash”,使用下面的命令连接到ssh服务器。
这个命令上面有说明。
(2)然后依次使用下列命令:
$cdd:
yichi@ebs-44324/cygdrive/d
$cdwork/www/
yichi@ebs-44324/cygdrive/d/work/www
$mkdirtestgit
mkdir:
cannotcreatedirectory`testgit'
:
Fileexists
$rm-rftestgit
$mkdirtestgit//创建testgit文件夹
$cdtestgit//进入testgit文件夹
yichi@ebs-44324/cygdrive/d/work/www/testgit
$gitinit//版本库初始化,会以testgit为库名建立一个新库
InitializedemptyGitrepositoryinD:
/work/www/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<
file>
..."
toincludeinwhatwillbecommitted)
#
#first.txt
#second.txt
nothingaddedtocommitbutuntrackedfilespresent(use"
gitadd"
totrack)
$gitadd.//将所有文件添加至Git,注意add后面有一个空格和英文字符点号(.)
$gitconfig--globaluser.name“yichi”//设置用户名
$gitconfig--globaluser.email“sunyichi@”//设置邮箱地址
$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到服务器。
五、自己搭建git服务器用途
做了上面这些到底有什么用呢?
如果你是在自己家里上网,你可以在自己电脑上搭建一个git服务器,提供给你的朋友使用,可以和你的朋友一起开发一个东西,而且不用再一起就行,只要能连上因特网。
当然要做一个服务器,首先要能连接到外网,如果你处在路由器的局域网内,需要做端口映射,ssh服务器的端口号是22。
六、客户端安装
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows 服务器 搭建 基于 SSH GIT