Назад | Перейти на главную страницу

npm устанавливается за одним прокси, но получена ошибка Http = 407 (Forefront TMG требует авторизации)

Операционная система - MacOS, и http (s) прокси уже настроены внутри Сетевые настройки, но всегда не мог установить какие-либо пакеты при запуске npm install (npm - это один установщик пакетов для nodejs) в терминале выскочила ошибка 407 Proxy Authentication Required.

Итак, я установил cntlm и применил правильную конфигурацию.

Ниже тест и кажется проходить (вернуть код HTTP 200):

cntlm -c /usr/local/etc/cntlm.conf -I -M http://registry.npmjs.org/vue
Password: 
Config profile  1/4... OK (HTTP code: 200)
----------------------------[ Profile  0 ]------
Auth            NTLMv2
PassNTLMv2      28B089518C6573274C6B9D83D0XXXXXX

Когда я бежал npm i vue-cli -g, cntlm получил запрос, как показано ниже:

cntlm -c /usr/local/etc/cntlm.conf -f
Oct 15 15:12:29  cntlm[17646] <Info>: Cntlm ready, staying in the foreground
Oct 15 15:12:38  cntlm[17646] <Info>: Using proxy company-proxy:80
Oct 15 15:12:38  cntlm[17646] <Debug>: 127.0.0.1 GET http://registry.npmjs.org/nexe

Но nodejs выбросил ниже исключения:

npm i vue-cli -g
npm ERR! code E407
npm ERR! 407 Proxy Authentication Required ( Forefront TMG requires authorization to fulfill the request. Access to the Web Proxy filter is denied.  ): vue-cli@latest

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/****/.npm/_logs/2018-10-15T23_13_47_019Z-debug.log

Меня это смутило: потому что тест ПРОЙДЕН, но почему cntlm по-прежнему не удалось подключиться к npmjs.org?

Наконец узнайте решение:

  1. не используйте простой текстовый пароль ( добавить один # в начале Password линия, как изменение Password XXX к #Password XXX)

  2. использовать PassLM, PassNT, PassNTLMv2 вместо этого (похоже, хеш-значения снова помешают механизму аутентификации, что должно означать, что вы работаете от имени приложений с зарегистрированной учетной записью пользователя Windows).

В файле конфигурации cntlm по умолчанию уже представлены шаги по их созданию.

Мои шаги как показано ниже:

  1. выполнять cntlm -H -d your_domain -u your_username

  2. затем он запрашивает пароль, введите свой пароль и нажмите Войти:

Результат будет таким, как показано ниже:

Password:
PassLM          F5314AF8A2DB16BDB7EE9FA6CFC5BC9A
PassNT          4EC02E0D65F8F0C1A9386C69CB6A2555
PassNTLMv2      28B089518C6573274C6B9D83D0EB8651 
  1. вставьте указанные выше хеш-значения в соответствующие поля файла конфигурации.

  2. сохранить, затем перезапустить cntlm, оно работает.