Chris Dzombak

Fixing 'Corrupted MAC On Input' Error with Git/SSH/VirtualBox 4.1.6

TL;DR: try configuring your VM to use a bridged network interface instead of NAT.

I'm working on a software engineering project inside a Windows 7 (64-bit) VirtualBox 4.1.6 VM on my iMac (running OS X Lion). When trying to push to a Github repo (via SSH), I was presented with this puzzling error:

$ git push origin master
Counting objects: 441, done.
Compressing objects: 100% (189/189), done.
Writing objects: 100% (441/441), 1.60 MiB, done.
Total 441 (delta 245), reused 441 (delta 245)
Received disconnect from 207.97.227.239: 2: Corrupted MAC on input.
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly

This means there's some network hardware, somewhere, corrupting the encrypted connection. It could be any router or NIC anywhere between the VM and the Github server (including those machines themselves). For more info on this error, check out this blog post from Oracle.

My VM was configured to connect to the network through VirtualBox's NAT engine. In my particular case, it looks like that engine was the problem. (Your mileage may vary; remember, any hardware between you and your server could be causing this). I configured VirtualBox to use a bridged connection, and suddenly everything works:

$ git push origin master
Counting objects: 441, done.
Compressing objects: 100% (189/189), done.
Writing objects: 100% (441/441), 1.60 MiB, done.
Total 441 (delta 245), reused 441 (delta 245)
To git@github.com:cdzombak/gsctl
 * [new branch]      master -> master

Hopefully someone else finds this useful when troubleshooting this error with the same VirtualBox configuration (VirtualBox 4.1.6, network through NAT).