'http.proxy = http:// userIdとしてgit proxy configがあります:pwd @ 123@ipaddress:port 'しかし、リモートプロジェクトのクローンを作成中に、
Cloning into git...
error: Couldn't resolve proxy '123@ipaddress' while accessing http://git.kernel.org/pub/scm/git/git.git/info/refs
fatal: HTTP request failed
パスワードの「@」文字をエスケープする方法は?
Pls注:パスワードを変更できません。
プロキシURLでパスワードを渡す場合は、@記号のURLエンコード値を使用してみます。
http.proxy=http://userId:pwd%40123@ipaddress:port
注(2013年11月)
URL(特にパスワードの特殊文字)をエンコードするのが適切なソリューションです。.netrc
以下に記載されているのは、リモートリポジトリURLのみであり、リモートリポジトリURLの解決に使用されるプロキシではありません。
上記のエンコーディングについては、「 Percent-encoding 」を参照してください。
パーセントエンコーディングは、URL encoding とも呼ばれ、 Uniform Resource Identifier (URI)特定の状況下。 URLエンコードとして知られていますが、実際には、メイン Uniform Resource Identifier (URI)セット内でより一般的に使用され、両方 Uniform Resource Locator (URL)および Uniform Resource Name (URN)。そのため、application/x-www-form-urlencoded media type のデータの準備にも使用されます。これは、 [〜#〜] html [〜#〜]form の提出 [〜#〜] http [〜#〜] リクエストのデータ。
パーセントエンコード後の予約文字:
! # $ & ' ( ) * + , / : ; = ? @ [ ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
元の回答(2011年5月)
2つのコメント:
http(httpsではなく)でアクセスされるサーバーのパスワードを持っているのは...奇妙です。クライアントとサーバー間の通信中、パスワードは暗号化されません。
.netrc
(または_netrc
for Windows)で$HOME
、次のコンテンツ
machine ipaddress:port login userId password pwd @
Gitがシーンの背後で使用するカールは、エンコーディングをうまく処理します。@
または@
。
異常な文字はURLエンコードします。
@ character is %40
私のgit configファイルでは、たとえばユーザー名を「ちょうど」エンコードしています:
https://myemail%[email protected]/api.git
たとえば、環境変数GIT_PASSWORD
、ユーザー名-GIT_USERNAME
に保存されているパスワードは、次のようになります。
git clone http://${GIT_USERNAME}:$(echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %)@repository.git
説明:echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %
$GIT_REPOSITORY
<-hello
hello
<-x68x65x6Cx6Cx6F
x68x65x6Cx6Cx6F
<-%68%65%6C%6C%6F
percent-encode | エンコード 特殊文字。例えば。これの代わりに:
http://foo:B@[email protected]:80
あなたはこれを書く:
http://foo:B%[email protected]:80
したがって、@
は%40
に置き換えられます。