Установка npm за одним прокси, но Http Error = 407 (Forefront TMG требует авторизации) - PullRequest
0 голосов
/ 16 октября 2018

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

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

Ниже приведен тест, и кажется, что pass (возврат 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

Меня смутило: потому что тест PASS, но почему cntlm все равно не удалось подключиться к npmjs.org?

1 Ответ

0 голосов
/ 17 октября 2018

Наконец, найдите решение :

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

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

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

Мои шаги следующие:

  1. execute cntlm -H -d your_domain -u your_username

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

Вывод будет выглядеть следующим образом:

Password:
PassLM          F5314AF8A2DB16BDB7EE9FA6CFC5BC9A
PassNT          4EC02E0D65F8F0C1A9386C69CB6A2555
PassNTLMv2      28B089518C6573274C6B9D83D0EB8651 

вставьте вышеуказанные хеш-значения в соответствующие поля в файле конфигурации.

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

...