Using wget against protected site with NTLM


Trying to mirror a local intranet site and have found previous questions using 'wget'. It works great with sites that are anonymous, but I have not been able to use it against a site that is expecting username\password (IIS with Integrated Windows Authentication).

Here is what I pass in:

wget -c –http-user='domain\user' –http-password=pwd http://local/site -dv

Here is the debug output (note I replaced some with dummy values obviously):

Setting --verbose (verbose) to 1
DEBUG output created by Wget 1.11.4 on Windows-MSVC.

--2009-07-14 09:39:04--  http://local/site
Host `local' has not issued a general basic challenge.
Resolving local... seconds 0.00, x.x.x.x
Caching local => x.x.x.x
Connecting to local|x.x.x.x|:80... seconds 0.00, connected.
Created socket 1896.
Releasing 0x003e32b0 (new refcount 1).

---request begin---
GET /site/ HTTP/1.0
User-Agent: Wget/1.11.4
Accept: */*
Host: local
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 401 Access Denied
Server: Microsoft-IIS/5.1
Date: Tue, 14 Jul 2009 13:39:04 GMT
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
Content-Length: 4431
Content-Type: text/html

---response end---
401 Access Denied
Closed fd 1896
Unknown authentication scheme.
Authorization failed.

Best Solution

NTLM authentication is broken in wget 1.11, use 1.10 instead.