软件及环境 Link to heading
-
Win10专业版
-
Git 2.13.3-X64
-
Copssh 4.1.0
搭建过程 Link to heading
安装Git Link to heading
所有的安装选项维持默认即可,建议不要安装到Program Files文件夹。
安装Copssh Link to heading
- 建议安装路径不要安装到Program Files文件夹
- 安装的时候会创建一个windows账户,建议自定义。到时候在传代码的时候会用到
- 会安装一个openssh服务,点击确定
- 安装完成
配置Copssh Link to heading
- 在开始菜单中找到 COPSSH Control Panel 打开,点击Users栏,按图中添加CopSSH用户(此用户就是安装时候添加的那个)。
-
将Git安装目录下C:\Git\mingw64\bin中的git.exe、git-receive-pack.exe、git-upload-archive.exe、git-upload-pack.exe、libiconv-2.dll五个文件拷贝到Copssh安装目录bin文件夹中
-
打开Copssh安装路径下etc/profile文件。在最后追加四行命令(注意:前三行命令中的/cygdrive后面换成你的路径)
gitpath='/cygdrive/e/Git/mingw64/bin'
gitcorepath='/cygdrive/e/Git/mingw64/libexec/git-core'
gitmergetoolspath='/cygdrive/e/Git/mingw64/libexec/git-core/mergetools'
export PATH="/bin:$syspath:$gitpath:$gitcorepath:$gitmergetoolspath:$winpath"
服务端配置Git Link to heading
将下面三个路径添加到环境变量path中,注意替换成你的路径
C:\Git\mingw64\bin
C:\Git\mingw64\libexec\git-core
C:\Git\mingw64\libexec\git-core\mergetools
客户端配置Git Link to heading
- 配置git名称和邮箱,注意邮箱和名字替换成你自己的
git config --global user.email "mrtantan@gmail.com"
git config --global user.name "mrtantan"
此时你就可以用密码登录了,如果你还想实现免密登录(公钥登录),就往下看吧
- 通过下面命令生成公私钥,邮箱就是上一步设置的邮箱,连续按三次空格就行
ssh-keygen -t rsa -C "youremail@example.com"
公钥登录 Link to heading
-
在服务端的copssh安装目录下面的home\你创建的用户.ssh 文件夹下面新建authorized_keys文件,注意没有扩展名
-
把客户端生成的公钥文件复制到上一步的authorized_keys文件里面(公钥文件是 C:\Users\当前用户名.ssh 文件夹下的 .pub格式文件。直接用文本编辑器打开复制里面的内容到authorized_keys文件,如果添加多个请换行)
-
关于下面这个选项,如果未选中的话,必须要有公钥才可以登录,不可以用密码登录。如果选中的话,会首先验证公钥,没有公钥在验证密码。
- 现在你就可以用公钥登录了。
遇到的2个坑 Link to heading
- 执行 git clone 时候会出现下面情况
$ git clone git@1xx.2xx.3xx.2xx:/xxx/sample.git
Cloning into 'sample'...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
x:1x:ex:6x:ax:cx:6x:6x:3x:3x:ex:3x:0x:cx:1x:5x.
Please contact your system administrator.
Add correct host key in /c/Users/xxx/.ssh/known_hosts to get rid of th
is message.
Offending RSA key in /c/Users/xxx/.ssh/known_hosts:10
ECDSA host key for 1xx.2xx.3xx.2xx has changed and you have requested strict chec
king.
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
问题原因: 服务端发生变化,加密的密钥改变,造成本地保存的密钥失败。
解决方案: 删除 C:\Users\当前用户名.ssh\known_hosts 文件中指定ip的密钥即可。
- 设置好公钥登录,出现permission denied
解决方法:
把安装copssh时候创建的用户删掉,然后再重新创建一个同名的账户,然后删掉copssh里面那个账户,在重新添加一遍。最后务必重启服务!注:重新添加的这个root账户必须设置隶属于administrator才可以。不然克隆项目会提示没有相关权限!!!