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 开头的行,如果启用,则应将其注释掉。
我不知道为什么最近我的 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 开头的行,如果启用,则应将其注释掉。