Подтвердить что ты не робот

НПМ за прокси-сервером NTLM

Можно ли запустить npm install за прокси-сервер HTTP, который использует аутентификацию NTLM? Если да, как я могу установить адрес и порт сервера, имя пользователя и пароль?

4b9b3361

Ответ 1

Я решил это так (ОС: Windows XP SP3):

1. Загрузите CNTLM установщик и запустите его.

2. Найдите и заполните эти поля в cntlm.ini. Не заполняйте поле Password, никогда не рекомендуется хранить незашифрованные пароли в текстовых файлах.

Username    YOUR_USERNAME
Domain      YOUR_DOMAIN
Proxy       YOUR_PROXY_IP:PORT
Listen      53128

3. Откройте консоль и введите эти команды для генерации хэшей паролей.

> cd c:\the_install_directory_of_cntlm
> cntlm -H
Password: ...type proxy password here...
PassLM          D6888AC8AE0EEE294D954420463215AE
PassNT          0E1FAED265D32EBBFB15F410D27994B2
PassNTLMv2      91E810C86B3FD1BD14342F945ED42CD6

4. Скопируйте указанные выше три строки в cntlm.ini в строке поля Domain. Еще раз не заполняйте поле Password. Сохраните cntlm.ini.

5. Откройте диспетчер служб (из командной строки: services.msc) и запустите службу под названием "CNTLM Authentication Proxy".

6. В консоли введите следующие строки:

> npm config set proxy http://localhost:53128
> npm config set https-proxy http://localhost:53128
> npm config set registry http://registry.npmjs.org

7. Теперь npm view, npm install и т.д. должны работать. Пример:

> npm view qunit
...nice answer, no errors :)

Ответ 2

Ответ CNTLM работал на меня, но с ошибками соединения делает npm непригодным. Я исправил их, добавив этот заголовок в CNTML.

Header      Connection: close

Ответ 3

Вы можете передать настройки в качестве параметров:

npm --proxy=http://username:[email protected]:port --proxy-https=http://username:[email protected]:port --registry=http://registry.npmjs.org/ install whateveryouwanttoinstall

Ответ 4

Вместо того, чтобы запускать CNTLM, вместо этого вы можете использовать Fiddler, когда вам нужно использовать npm. Я нашел, что это работает в довольно закрытых средах (например, инвестиционных банках). Это также инструмент, который довольно легко сделать бизнес-кейсом (если вам нужно), поскольку он неоценим для проверки/создания/изменения HTTP-трафика.

Мне пришлось пройти этот маршрут раньше из-за использования smartpass authentication - то есть у нас фактически не было паролей. В этих местах создание CNTLM было бы невозможным.

Ответ 5

Другой альтернативой является использование Px для Windows, в котором NTLM говорит от вашего имени, как Cntlm и NTLMAps, без необходимости предоставлять ваши учетные данные. Он использует зарегистрированные учетные данные пользователя через SSPI.

Ответ 6

CNTLM не работал у меня. Я пробовал все возможные комбинации. NPM выдавал ошибку аутентификации. Скрипач пришел на помощь и спас меня. Его легко установить и настроить. Установите правило Fiddler для автоматического аутентификации. В .npmrc установите эти

registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false

Это сработало для меня:)

Другой вариант Fiddler:

Второй способ заставить Fiddler действовать как прокси-сервер HTTP для NTLM и других протоколов - оставить параметры автоматической аутентификации/правила по умолчанию и перейти к этой настройке из строки меню:

Инструменты > Параметры Telerik Fiddler > вкладка "Подключения"

Установите флажок Разрешить удаленные компьютеры для подключения. Появится диалоговое окно, объясняющее последствия включения этой опции. Перезапустите Fiddler и обновите файл .npmrc, как показано выше. Всякий раз, когда вам нужно npm для доступа к сайту реестра, просто запустите Fiddler. Этот параметр не повлияет на то, как Fiddler запускается для других захватов.

Ответ 7

CNTLM работал у меня, как было предложено KOL. спасибо KOL за это. Просто хотел добавить, что в отдельных прокси-серверах есть некоторые странности, из-за которых пароль может быть неприемлем при использовании простого cntlm -H. Используйте cntlm -I -M http://test.com и скопируйте конфигурацию между ----- строками после стирания старых конфигураций и вы должны пройти. Вывод похож на

"---------------------------------------------- -----

Auth NTLM

PassNT 8EE9B595A89F7D8774C2146FB302CBCF

PassLM 78901DA9889727EDE28EF9F2769485B9

----------------------------------------------- ----- "