msysgit麻烦

7 git ssh msysgit

所以我似乎有一些设置msysgit的实际问题.我可以通过putty连接到我的SSH目录

SSH://用户名@主机:端口

我有正确的钥匙.我也可以通过plink使用plink

plink -P PORT user @ host -i /path/to/private_key.ppk

当我尝试运行(通过TortiseGIT)或通过git bash

git clone ssh:// user @ host:port/path/to/myapp.git

我只是不断收到错误

D:/Git/myapp.git中初始化的空Git存储库
警告:您似乎克隆了一个空存储库.
致命:远程端意外挂断

我检查了bot /Git/setup.ini和TortiseGIT,两者都使用了

C:\ Program Files\TortoiseSVN\bin\TortoisePlink.exe

有谁知道如何解决这个问题,因为它让我疯了!

dan*_*iel 9

这是一个检查清单:

  1. 是否在您尝试连接的服务器上启用了ssh?
  2. GIT是否安装在服务器上?
  3. 你在服务器上设置了Git存储库吗?
  4. 存储库是否具有正确的权限并且在服务器上的配置中启用了sharedrepository?
  5. 你有适合GIT的ssh键吗?

    建议:

1:既然你可以使用putty连接,看起来像ssh设置好了.

2:使用putty并连接到服务器.输入 git --version您是否得到了合理的回复?如果没有,那么您将需要在服务器上安装它.

3:尝试在服务器上设置新的存储库.假设它有一个*nix样式的服务器使用putty并连接到服务器并使用以下命令创建一个新的存储库,假设你有一个目录/ home/source_code.回声线只是生成一个带有一点文字的文件,所以我们有一些东西可以开始.

cd /home/source_code
mkdir test_repo
cd /home/source_code/test_repo
echo "first file" > t.txt
git init
git add .
git commit -m "Initial Import"
Run Code Online (Sandbox Code Playgroud)

所以现在我们有一个存储库,里面有一个t.txt文件.作为一项规则,您永远不应该进入包含工作副本更改的存储库.在服务器上拥有一个存储库的目的是让人们可以随时进入它.我们制作一个"裸"克隆,它只是git数据库,这样就不会有任何工作副本的变化.这是我们将用作中央git存储库的"裸"克隆.

cd /home/source_code
git clone --bare test_repo/ test_repo.git
Run Code Online (Sandbox Code Playgroud)

您现在可以摆脱我们设置的临时存储库.

cd /home/source_code/
rm -rf test_repo
Run Code Online (Sandbox Code Playgroud)

在本地计算机上再次尝试克隆

git clone ssh://user@host.com:port/home/source_code/test_repo.git
Run Code Online (Sandbox Code Playgroud)

4:权限:除非您为没有读取权限的存储库选择了一个位置,否则这不会导致克隆,提取或拉取问题.如果在推回时收到Permission denied错误,请参阅权限更正

5:为GIT设置公钥/私钥:

  1. 使用putty连接到服务器
  2. 设置〜/ .ssh文件夹的权限: chmod 700 .ssh
  3. 设置〜/ .ssh/authorized_keys的权限: chmod 600 authorized_keys
  4. 生成密钥 ssh-keygen -t dsa
  5. 接受它要使用的文件名
  6. 不要输入密码(只需输入).您将希望稍后使用密码重做.
  7. 将pub键添加到authorized_keys文件: cat id_dsa.pub >> .ssh/authorized_keys
  8. 编辑/ etc/ssh/ssh_config并添加该行 PubkeyAuthentication yes
  9. 重启ssh守护进程 sudo /etc/init.d/ssh restart
  10. 复制id_dsaid_dsa.pub从服务器复制到本地硬盘(使用winscp或sftp或某些此类工具)c:\ users\userName\.ssh目录(这对于vista来说,其他版本的windows的位置会有所不同)
  11. 设置togise git指向C:\ Program Files\Git\bin\ssh.exe(不是putty)

命令行git和tortoise git都应该设置为可以工作.尝试在本地计算机上再次克隆.

git clone ssh://user@host.com:port/home/source_code/test_repo.git
Run Code Online (Sandbox Code Playgroud)

您现在可能想要重复使用密码来设置密钥....


小智 1

您需要安装 Pageant 并将密钥添加到其中。

还要仔细检查您的 GIT_SSH 环境变量是否设置为使用 plink