The repo wouldn’t clone. The SSH key was perfect. The network was fine. The problem was the proxy.
When you need to run git checkout over SSH and there’s a proxy in the middle, the smallest misstep will break your flow. Firewalls block the port. Corporate networks rewrite packets. And meanwhile, your sprint clock keeps ticking.
The first step is control. Control of your SSH config, your proxy settings, and your Git environment variables. Many fail here because they mix system-wide config with user config. Keep it clean. Declare settings for the user running the checkout, not for the whole machine.
Next, make sure your SSH client is calling the proxy properly. The ProxyCommand directive inside ~/.ssh/config is your friend. A typical entry might look like this:
Host github.com
HostName github.com
Port 22
User git
ProxyCommand nc -X connect -x proxy.example.com:8080 %h %p
If port 22 is blocked, switch to port 443 and use ssh.github.com as the host. Git supports this if your SSH config matches. Verify with ssh -T git@ssh.github.com before running git checkout.
For HTTPS-over-proxy setups, set these variables:
git config --global http.proxy http://proxy.example.com:8080
git config --global https.proxy http://proxy.example.com:8080
When you combine SSH over a proxy with Git operations like git clone, git fetch, and git checkout, precision matters. Each step is a dependency for the next. The connection chain must be airtight.
Tools like Hoop.dev remove the friction. They tunnel your SSH access cleanly through any proxy, with minimal setup and no fight with the network. You can check out a private repo in a locked-down environment in minutes. No hacks, no workarounds, no wasted mornings searching for hidden firewall rules.
If you want your next git checkout over SSH through a proxy to be instant and predictable, skip the manual fixes. See it live on Hoop.dev now.