签出项目并增加一个文件(在个人电脑上)
签出项目
cd ~
git clone raywill@174.140.1.1:/home/raywill/repository/yiker/ yiker_clone
cd yiker_clone/
ls
新建文件
echo "hello git" > README.txt
将修改提交到本地仓库
git add *
git commit
将本地仓库的修改同步到root服务器
git push origin master
整个过程中遇到三个问题,都一一解决,这些问题都是git带出来的,但都不是git的问题:
1. ssh 174.140.1.1连接极慢的问题
> 很多时候ssh连接慢是由于反向域名解析导致的,不过我遇到的不是这个。用DEBUG模式开启ssh,可以看到慢在哪一步:
ssh -v 174.140.1.1
可以看到ssh连接会尝试用很多种认真方式连接ssh服务器(root服务器),我的卡在了
debug1: Next authentication method: gssapi-with-mic
这一步上。解决方法是编辑root服务器上的ssh配置文件:
vi /etc/ssh/ssh_conf
找到
GSSAPIAuthentication yes
改为
GSSAPIAuthentication no
保存。OK了,连接很快!
2. 不支持免密码提交git push的问题
git支持四种传输协议:Local, SSH, Git, HTTP。Local就是本地玩玩,没啥实际用途,Git、HTTP通常都是只读模式,而且都需要起server deamon,剩下只有SSH模式了,比较靠谱,很好使。因为采用了SSH模式,也就可以利用SSH带来的一系列便利了,例如免密码登录。具体方法见我的博客:Linux主机间建立信任关系
这次却奇怪了,按照流程操作却依然不行,最后baidu一番才知道,是文件的权限导致的,具体参考Linux添加信任关系失败这篇文章 。
3. SSHD无法启动的问题
因为搞ssh翻墙,另外手动启动了一个sshd(原来的sshd没有被覆盖,新的sshd在/usr/local/bin/sshd,配置文件中也配置了22端口),导致/etc/init.d/sshd restart失败。
解决办法:新的sshd只监听翻墙端口,老的sshd只监听22端口。