Key takeaways
Browser traffic and Git traffic are not automatically identical
The GitHub website normally uses HTTPS, while repository operations can use HTTPS or SSH. Even on the same computer, those processes can inherit different proxy settings or be treated differently by split tunneling. A successful browser session therefore does not prove that git or ssh is using the same VPN route.
Read the exact remote URL first. For HTTPS, focus on DNS, TLS, and Git proxy state. For SSH, focus on hostname resolution, routing, SSH configuration, and the network path used by the SSH connection.
Inspect proxy state, DNS, and address family
Git can inherit HTTP_PROXY and HTTPS_PROXY or store proxy values in its own configuration. A stale local proxy can send Git into a dead path while the browser connects directly. SSH can independently use Host aliases, ProxyCommand, or other rules from its configuration.
Compare IPv4 and IPv6 as well. When DNS returns both families but the VPN only routes one reliably, a client may wait on an unreachable address and appear to hang. Fix the route or client behavior instead of weakening TLS verification.
Use a small deterministic troubleshooting sequence
Repeat the operation with verbose Git or SSH output and note the stage where it stops. Check name resolution with the VPN on and off, confirm the remote scheme, and inspect proxy settings. Then compare another network or the alternate clone protocol.
If HTTPS cloning works and SSH does not, investigate the SSH path before changing repository credentials. If both clone methods fail while the website works, the difference between browser routing and process routing becomes the strongest lead.
Continue reading