当前位置: 首页>>技术教程>>正文


真的很冗长的方式来测试通过SSH的Git连接?

, , ,

问题描述

当使用GIT时,我有problems with using GIT over SSH,因为它在工作和家里使用不同的调制解调器都可以正常工作,显然我的家用调制解调器正在起作用。我通过HTTP连接没有问题。

所以,我假设这是一个SSH问题,但我不是直接使用它的专家。是否有任何可以运行的命令设置”test”连接,并让我确切知道问题发生的时间和地点?

几乎所有的”larger”命令(如fetchclone,或用大量的数据push)从git(即使与-v运行)刚刚”hang”在没有说明为什么他们已经停止了远程连接的中间,让他们有来无使用。

有什么方法可以获得有关SSH连接中发生的事情的更多细节吗?

最佳解决思路

我有类似的问题。为了调试,我在ssh_config中添加了一行。我是这样做的:

git remote -v

在那里你会找到这样一条线:

origin  git@github.com:me/test.git (fetch)
origin  git@github.com:me/test.git (push)

在这种情况下,主机是github.com。现在你可以在你的ssh配置中添加一个Host-Entry:

vim ~/.ssh/config

并添加:

Host github.com
    LogLevel DEBUG3

在使用git操作时,您现在应该获得大量调试消息。要获得较少的调试消息,请尝试使用DEBUG1

对于GIT版本> = 2.3.0,请参阅answer from @Flimm以获得更智能的解决方案。

次佳解决思路

环境变量

从Git版本2.3.0开始,您可以使用环境变量GIT_SSH_COMMAND并传递-v详细参数,如下所示:

GIT_SSH_COMMAND="ssh -v" git clone example

要更加详细,请将其设为-vvv

GIT_SSH_COMMAND="ssh -vvv" git clone example

Git配置

从Git版本2.10.0(将在Ubuntu 17.04的repos中)中,您可以全局保存此配置,或者按照此示例中的每个repo保存:

git config core.sshCommand "ssh -vvv"
git pull

第三种解决思路

通过man git读取,您可以设置一些有用的环境变量,GIT_TRACE_PACKETGIT_TRACE。例如:

GIT_TRACE_PACKET=true git clone ssh://[...]

游戏有点晚了,但希望这有助于某人!

第四种思路

每个man ssh

 -v      Verbose mode.  Causes ssh to print debugging messages about its progress.  This
         is helpful in debugging connection, authentication, and configuration problems.
         Multiple -v options increase the verbosity.  The maximum is 3.

所以,试试ssh -v。如果这不能告诉您需要知道的内容,可以添加一个或两个v以获取更详细的调试信息。特别是对于Github,尝试ssh -vvvT git@github.com

通常,根据我的经验,当客户端无法完成所选的身份验证方法时,会在安装过程中挂起SSH会话。使用正确的权限检查您的私钥是否在正确的位置,并匹配您给予Github的公钥。

第五种思路

我没有看到告诉git(1)用于ssh(1)的外部命令的方法,但作为一种解决方法,只需将/path /to /ssh重命名为/path/to/ssh.orig,创建一个shell脚本包装器/路径/到/ssh,并添加-v标志:

$ sudo mv /usr/bin/ssh /usr/bin/ssh.orig
$ sudo vim /usr/bin/ssh
$ cat /usr/bin/ssh
#!/bin/sh

if [ -x /usr/bin/ssh.orig ]; then
    exec /usr/bin/ssh.orig -v -v -v "${@}"
fi

$ sudo chmod a+x /usr/bin/ssh

在执行通过ssh传输操作的git命令时,我得到详细的输出。完成调试后,删除脚本并将/path/to/ssh.orig恢复到/path /to /ssh。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1303.html,未经允许,请勿转载。