This is the same problem as a number of other have reported, e.g.
Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-1.xml, reason: Connect
The reason sudo works on linux and Mac OS X is that sometimes the permisions in ~/.android get misconfigured. If you are having this problem over and over again, and you would rather not type sudo every time you want to update your sdk, go to ~/.android and ensure that your account owns and has permissions to read and write all the files.
In my case I found that root owned several folders including the cache directory,
cd ~/.android
sudo chown -R
fixed the problem for me. If you are touchy about the security of your system, you can also specify a group like:
sudo chown -R
AND
you could also specify the individual files and directories that need to be changed if you don't like the wild card.
sudo chown --R
for instance.
Thanks to the folks here for figuring it out.