搭建git for windows服务器错误点及解决办法

来源:互联网 发布:xmind8 mac破解序列号 编辑:程序博客网 时间:2024/06/17 19:11

今天亲手操作的搭建git服务器,中途遇到了不少问题,当然解决了,这个过程中学习了很多东西,在这里总结了下,分享给大家。

开始前介绍几篇文章给大家看看,各有千秋,都有想要的内容:

windows搭建基于ssh的Git服务器

搭建git for windows服务器

Windows+Git+TortoiseGit+COPSSH安装图文教程

下面是我遇到的问题以及解决的办法:

OpenSSH普通用户无法登录的几种情况的解决方法

1 验证方式不支持

如客户端登录时提示如下:

[henry@henry-pc~]$ ssh minorlai@192.168.10.41Permission denied (publickey,keyboard-interactive).

解决方法:
修改配置文件,找到COPSSH安装的目录下面的etc目录,比如C:\SSH\etc,用记事本打开ssh_config和sshd_config这两个文件,两个文件都要修改。
修改如下内容:
找到PasswordAuthentication,如果前面有#号,删掉,如果后面是yes,改成no
PasswordAuthentication no
找到PubkeyAuthentication,如果前面有#号,删掉,如果后面是no,改成yes
PubkeyAuthentication yes
找到Port 22,删除掉前面的#号
Port 22
然后重启服务:service sshd restart

2 普通用户登录密码始终错误,sshd启动有报错
sshd启动报错:
Unsupported option GSSAPIAuthentication
Unsupported option GSSAPICleanupCredentials

解决方法:
注销sshd的配置文件(sshd_config)的如下配置(路径请看上一步):
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
#UsePAM yes
然后重启服务:service sshd restart

网上找了些资料,也涉及到相关方面的,在这里总结了:

1、COPSSH是一个既有客户端又含有服务器的软件,默认情况下,没有用户可以通过COPSSH访问你的电脑,你可以使用control panel来active users.
active users 可以通过ssh访问你的电脑。

2、 copssh安装完成以后双击上图那个控制面板Status,如果服务的运行状态是绿色的圆圈,说明一切正常,否则可能你的安装有问题。卸了重来吧。

3、安装过程会创建一个名为SvcCOPSSH的系统用户用于启动Copssh的服务,这里默认即可,提醒一点,如果卸载重装Copssh要记得手动删除系统用户SvcCOPSSH,否则Copssh服务将无法正常启动。
**这个问题让我费了3个小时时间,后来才发现服务的运行状态是红色的圆圈。之后尝试ssh Administrator@ip才连接成功。

4、如果你直接用COPSSH Control Panel创建keys,”然后你将得到一个生成的私钥文件private_key.ppk(自己命名),对应的authorized_keys已经自动生成在 G:\SSH\home\<用户名>.ssh 目录下”

5、*晚上可以从远程git clone后却在本地master push 不了,有费了很长时间,在本地该config不成功,原来是要在remote(服务器端)的repo中修改.git的config文件,使之可以接受远程push。
[receive]
denyCurrentBranch = ignore
在服务器端使用 git –bare init 初始化的话就不会出现这个问题。

6、**最开始是ssh都连接不上,不是port22没打开,原来是由于重装COPSSH时候,没有将上次安装时自动生成的SvrCOPSSH用户删除,导致Copssh一直就无法启动启动,。。。。

执行git push后,服务器端无法查看到推送内容的原因及解决方法

在初始化远程仓库时最好使用:git –bare init,而不要使用:git init
如果使用了git init初始化,则远程仓库的目录下也包含work tree。当本地仓库向远程仓库push时,如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上,也即在远程仓库的目录下对应的文件还是之前的内容。
解决方法:
远程端必须运行命令:git reset –hard才能看到push后的内容。

问题思考:当执行git push的时候是将所有commit的都
本地改动如删除文件yhz,git commit在本地更改后,现在不进行git push的话也就是不更新到remote,现在本地和remote的文件不同,但是此时执行git pull remote master也不会更改本地文件,也就是不会将remote的yhz而本地不存在的yhz拉到本地。

git clone时是相对于远程的主目录的路径:否则会出现错误

0 0
原创粉丝点击