オペレーティングシステムはMacOSであり、ネットワーク設定内にhttp(s)プロキシを既にセットアップしていますが、npm install
の実行時に常にパッケージのインストールに失敗しました(npmはnodejsの1つのパッケージインストーラーです)ターミナルでは、エラー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つ追加します#
Password
行の先頭、たとえばchange Password XXX
から#Password XXX
)
代わりにPassLM、PassNT、PassNTLMv2を使用してください(ハッシュ値は認証ハンドシェイクメカニズムを再び妨げるようです。つまり、あなたが代理を務めていることを意味します。ログインしたWindowsユーザーアカウントを持つアプリケーション)。
デフォルトのcntlm設定ファイルには、それらを生成する手順がすでに導入されています。
私の手順以下のとおりです。
実行cntlm -H -d your_domain -u your_username
次に、パスワードの入力を求め、パスワードを入力してからEnterを押します。
出力は次のようになります。
Password:
PassLM F5314AF8A2DB16BDB7EE9FA6CFC5BC9A
PassNT 4EC02E0D65F8F0C1A9386C69CB6A2555
PassNTLMv2 28B089518C6573274C6B9D83D0EB8651
上記のハッシュ値を構成ファイルの関連フィールドに貼り付けます。
保存してから再起動しますcntlm、動作します。