1. 使用git客户端
我下载的是这个https://git-for-windows.github.io/
打开shell客户端,输入git命令,如下所示。
huangzhihao@G8WFWB2 MINGW64 ~
$ git
usage: git [--version] [--help] [-C] [-c name=value] [--exec-path[=]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=] [--work-tree=] [--namespace=][]
2.如何配置git选项
linux下git配置文件位于home目录下, 文件名为.gitconfig。
对应的windows的配置文件位于C:\Users\huangzhihao目录下,后面那个是当前的用户名。文件名也是.gitconfig.
3.sshkey的生成和添加
与linux上一样。
4. 疑难问题
Unable to negotiate with 10.140.70.24 port 29418: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
这个问题在linux下的解决方式是修改ssh的配置文件,该文件路径为~/.ssh/config.
打开文件后类似如下所示,在hostname后面添加KexAlgorithms +diffie-hellman-group1-sha1,重新连接后成功。
Host 10.120.0.70
Hostname 10.120.0.70
KexAlgorithms +diffie-hellman-group1-sha1
参照这个思路,尝试修改windows对应目录下的配置文件。windows中ssh的文件夹路径为C:\Users\huangzhihao\.ssh\。打开后发现没有config文件,添加一个config文件并添加如上的内容后,发现没有效果。
应该是配置方式不对,参考http://stackoverflow.com/questions/7772190/passing-ssh-options-to-git-clone所说,配置全局命令可以输入类似命令
git config --global core.sshCommand ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
参照这个后,输入命令行
git config --global core.sshcommand ssh -o KexAlgorithms=+diffie-hellman-group1-sha1
下面给出了git的help提示,应该是命令格式有误。加上双引号,再试一次。
git config --global core.sshcommand "ssh -o KexAlgorithms=+diffie-hellman-group1-sha1"
没有错误提示,然后重新调用git clone命令,git clone ssh://huangzhihao@xxx.devops.xxx.com:29418/project/path/
连接成功!
再次打开C:\Users\huangzhihao\.gitconfig, 我们会发现增加了如下内容
[core]
sshcommand = ssh -o KexAlgorithms=+diffie-hellman-group1-sha1
所以,也可以直接在.gitconfig文件中按照以上格式来添加配置选项。
git配置选项可以参考https://git-scm.com/docs/git-config