68

NTLM認証npm installを使用する HTTP プロキシの背後で実行することはできますか? はいの場合、サーバーのアドレスとポート、ユーザー名、およびパスワードを設定するにはどうすればよいですか?

4

8 に答える 8

134

この方法で解決しました(OS: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.上記の 3 行を cntlm.ini のDomainフィールド行の下にコピーします。繰り返しますが、フィールドには入力しないでください。Passwordcntlm.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 https://registry.npmjs.org

7.これnpm viewで、npm installなどが機能するはずです。例:

> npm view qunit
...nice answer, no errors :)
于 2013-09-02T09:49:07.103 に答える
11

CNTLM の回答は機能していましたが、接続エラーにより npm が使用できなくなりました。このヘッダーを CNTML に追加して修正しました。

Header      Connection: close
于 2015-05-07T09:14:07.880 に答える
10

もう 1 つの方法は、Cntlm や NTLMAps のように、資格情報を提供することなく、代わりに NTLMを使用するPx for Windowsを使用することです。ログインしたユーザーの資格情報を SSPI 経由で使用します。

于 2016-08-19T20:05:26.613 に答える
9

npm を使用する必要がある場合は、CNTLM を実行する代わりにFiddlerを実行してみてください。これは、かなりロックダウンされた環境 (投資銀行など) で機能することがわかりました。また、HTTP トラフィックのチェック/作成/変更に非常に役立つため、(必要に応じて) ビジネス ケースを作成するのが非常に簡単なツールでもあります。

スマートパス認証を使用していたため、以前はこのルートに行かなければなりませんでした。つまり、実際にはパスワードがありませんでした。それらの場所で CNTLM をセットアップすることは不可能でした。

于 2014-08-29T15:10:04.970 に答える
5

CNTLM はうまくいきませんでした。考えられるすべての組み合わせを試しました。NPM で認証エラーが発生していました。Fiddler が助けに来て、私の時間を節約してくれました。インストールと構成は簡単です。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 を NTLM およびその他のプロトコルの HTTP プロキシとして機能させる 2 つ目の方法は、自動認証オプション/ルールの既定値をそのままにして、メニュー バーからこの設定に移動することです。

ツール > Telerik Fiddler オプション > 接続タブ

[リモート コンピューターの接続を許可する] チェックボックスをクリックします。このオプションを有効にした場合の結果を説明するダイアログが表示されます。Fiddler を再起動し、上記のように.npmrcファイルを更新します。レジストリ サイトにアクセスするために npm が必要なときはいつでも、Fiddler を実行するだけです。この設定は、Fiddler が他のキャプチャに対して実行する方法には影響しません。

于 2016-04-29T05:01:41.933 に答える
0

KOLが提案したように、CNTLMは私のために働きました。KOLさん、ありがとうございます。simple を使用するとパスワードが受け入れられない可能性があるため、個々のプロキシにはいくつかの奇妙な点があることを付け加えたいと思いますcntlm -H

古い設定を消去した後、以下の設定を使用cntlm -I -M http://test.comしてコピーすれば完了です。

出力は次のようになります

---------------------------------------------------
Auth            NTLM
PassNT          8EE9B595A89F7D8774C2146FB302CBCF
PassLM          78901DA9889727EDE28EF9F2769485B9
----------------------------------------------------
于 2016-06-02T05:09:43.760 に答える