GIT拉突然挂了

GIT pull suddenly hang

我不知道为什么最近我的 git 拉开始挂起

我已经试过了

git fsck && git gc --prune=now


更新

网络防火墙

这是我在 Digital Ocean

的网络防火墙中设置的

无法上网,ping google

我无法从 bitbucket ping 或 ssh


更新 2

└── iptables -S                                                                                                                 
-P INPUT ACCEPT                                                                                                                   
-P FORWARD ACCEPT                                                                                                                 
-P OUTPUT ACCEPT                                                                                                                  


                                                                                      
└── ufw status                                                                                                                    
Status: inactive 

更新 3

我什至尝试在网络级别完全禁用防火墙,在服务器内部 level.I 似乎仍然 相同 结果


更新 4

└── GIT_TRACE=1 GIT_CURL_VERBOSE=1 git拉

11:07:35.834628 git.c:344               trace: built-in: git pull                                                                                     
11:07:35.838802 run-command.c:646       trace: run_command: git fetch --update-head-ok                                                                
11:07:35.858628 git.c:344               trace: built-in: git fetch --update-head-ok                                                                   
11:07:35.864635 run-command.c:646       trace: run_command: unset GIT_DIR GIT_PREFIX; ssh git@bitbucket.org 'git-upload-pack '\''jdoe/project.git'\'''  

更新 5

└── GIT_SSH_COMMAND="ssh -vvv" GIT_TRACE=1 git 拉

12:09:17.835895 git.c:344               trace: built-in: git pull                                                                                     
12:09:17.836775 run-command.c:646       trace: run_command: git fetch --update-head-ok                                                                
12:09:17.838743 git.c:344               trace: built-in: git fetch --update-head-ok                                                                   
12:09:17.839407 run-command.c:646       trace: run_command: unset GIT_DIR GIT_PREFIX; 'ssh -vvv' git@bitbucket.org 'git-upload-pack '\''jdoe/project.git'\'''                                                                                                                                        
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017                                                                                           
debug1: Reading configuration data /etc/ssh/ssh_config                                                                                                
debug1: /etc/ssh/ssh_config line 19: Applying options for *                                                                                           
debug2: resolving "bitbucket.org" port 8200                                                                                                           
debug2: ssh_connect_direct: needpriv 0                                                                                                                
debug1: Connecting to bitbucket.org [18.205.93.1] port 8200.   

更新 6

vi /etc/ssh/sshd_config

Port 8200                                                                                                                                               
Protocol 2                                                                                                                                              
HostKey /etc/ssh/ssh_host_rsa_key                                                                                                                       
HostKey /etc/ssh/ssh_host_dsa_key                                                                                                                       
HostKey /etc/ssh/ssh_host_ecdsa_key                                                                                                                     
HostKey /etc/ssh/ssh_host_ed25519_key                                                                                                                   
UsePrivilegeSeparation yes                                                                                                                              
KeyRegenerationInterval 3600                                                                                                                            
ServerKeyBits 1024                                                                                                                                      
SyslogFacility AUTH                                                                                                                                     
LogLevel INFO                                                                                                                                           
PermitRootLogin yes                                                                                                                                     
StrictModes yes                                                                                                                                         
RSAAuthentication yes                                                                                                                                   
PubkeyAuthentication yes                                                                                                                                
IgnoreRhosts yes                                                                                                                                        
RhostsRSAAuthentication no                                                                                                                              
HostbasedAuthentication no                                                                                                                              
PermitEmptyPasswords no                                                                                                                                 
ChallengeResponseAuthentication no                                                                                                                      
PasswordAuthentication no                                                                                                                               
X11Forwarding yes                                                                                                                                       
X11DisplayOffset 10                                                                                                                                     
PrintMotd no                                                                                                                                            
PrintLastLog yes                                                                                                                                        
TCPKeepAlive yes                                                                                                                                        
AcceptEnv LANG LC_*                                                                                                                                     
Subsystem sftp /usr/lib/openssh/sftp-server                                                                                                             
UsePAM yes  

我还检查什么?

除了跟踪和协议(在您的情况下为 SSH)之外,还要检查您从中提取的远程托管服务器的状态。

例如,GitHub had an incident yesterday,这可以解释 clone/pull 请求中的一些延迟。

这个DigitalOcean thread提到:

I had to add outbound rule for SSH and DNS UDP

our discussion, the issue was /etc/ssh/ssh_config

中所述

Do you know why I kept trying to connect to BitBucket at port 8200 instead of 22 ? Where is the settings for that ?

那是第一行:端口8080改成22

您为什么要尝试通过端口 8200 连接到 bitbucket.org?

你不应该使用端口 22 吗?

另外 bitbucket.org 已在其端禁用 ping,因此要测试您与站点的连接,您可以执行以下操作:

curl -skLi bitbucket.org

据我所知,您的传出 ssh 连接正在通过端口 8200 而不是 22。
因此,请确保检查文件 /etc/ssh/ssh_config 中以 Port 22 开头的行,如果启用,则应将其注释掉。