277

私は個人的なプロジェクトで Mercurial を使用しており、何かをサーバーにプッシュするたびにユーザー名とパスワードを入力していました。

ホームディレクトリのファイルに以下を追加してみました.hgrcが、完全に無視されているようです。

[ui]
username = MY_USER_NAME
password = MY_PASSWORD

これを正しい方法で行う方法は?

4

8 に答える 8

336

.hgrc次のように、またはMercurial.iniファイルにauth セクションを作成できます。

[auth]
bb.prefix = https://bitbucket.org/repo/path
bb.username = foo
bb.password = foo_passwd

「bb」の部分は任意の識別子で、接頭辞をユーザー名およびパスワードと一致させるために使用されます - 異なるサイトで異なるユーザー名/パスワードの組み合わせを管理するのに便利です (接頭辞)

ユーザー名のみを指定することもできます。その場合は、プッシュ時にパスワードを入力するだけです。

keyring extensionも参照することをお勧めします。プレーン テキスト ファイルではなく、システムのキー リングにパスワードを保存するため、より安全です。Windows では TortoiseHg にバンドルされており、現在、すべてのプラットフォームでバンドルされた拡張機能として配布することについて議論されています。

于 2010-04-07T00:12:25.373 に答える
170

これを行うには 3 つの方法があります: .hgrc ファイルを使用する、ssh を使用する、またはキーリング拡張機能を使用する


1. 安全でない方法 - ~/.hgrc ファイルを更新する

私のために機能する形式(私の ~/.hgrc ファイル内)はこれです

[ui]
username=Chris McCauley <chris.mccauley@mydomain.com>

[auth]
repo.prefix = https://server/repo_path
repo.username = username
repo.password = password


一意のタグを先頭に追加して、プレフィックス、ユーザー名、パスワードのトリプレットを追加することで、必要な数のリポジトリを構成できます。

これは Mercurial 1.3 でのみ機能し、ユーザー名とパスワードがプレーン テキストであることは明らかです。


2. 安全な方法 - SSH を使用してパスワードの使用を避ける

Mercurial は SSH を完全にサポートしているため、パスワードなしでサーバーにログインする SSH の機能を利用できます。自己生成証明書を提供するには、1 回限りの構成を行います。これは、あなたが望むことを行うための最も安全な方法です。


パスワードなしのログイン の構成に関する詳細については、こちらを参照してください。


3. キーリング拡張

安全なオプションが必要だが、SSH に慣れていない場合は、これを試してみませんか?

ドキュメントから...

拡張機能は、特定のリモート リポジトリへの最初のプル/プッシュ時に HTTP パスワードの入力を求めますが (デフォルトで行われるのと同じように)、パスワード データベースにパスワードを保存します (ユーザー名とリモート リポジトリの URL の組み合わせによってキーが設定されます)。次回の実行時に、.hg/hgrc でユーザー名をチェックし、次にパスワード データベースで適切なパスワードをチェックし、見つかった場合はそれらの資格情報を使用します。

詳しい情報はこちら

于 2010-04-06T11:31:14.587 に答える
65

キーリング拡張機能については誰も言及していません。ユーザー名とパスワードをシステム キーリングに保存します。これは、前述のようにパスワードを静的ファイルに保存するよりもはるかに安全です。以下の手順を実行すると、準備完了です。これを Ubuntu で約 2 分で起動して実行しました。

>> sudo apt-get install python-pip
>> sudo pip install keyring
>> sudo pip install mercurial_keyring

**Edit your .hgrc file to include the extension**
[extensions]
mercurial_keyring = 

https://www.mercurial-scm.org/wiki/KeyringExtension

于 2011-01-11T01:03:45.173 に答える
30

.hg/hgrc簡単なハックは、プロジェクトのファイルのプッシュ URL にユーザー名とパスワードを追加することです。

[paths]
default = http://username:password@mydomain.com/myproject

(この方法では、パスワードを平文で保存することに注意してください)

同じドメインで複数のプロジェクトに取り組んでいる場合は、ファイルに書き換えルールを追加し~/.hgrcて、すべてのプロジェクトでこれを繰り返さないようにすることができます。

[rewrite]
http.//mydomain.com = http://username:password@mydomain.com

繰り返しますが、パスワードはプレーン テキストで保存されるため、通常は自分のユーザー名だけを保存します。

Gnome で作業している場合は、Mercurial と Gnome キーリングを統合する方法をここで説明します。

http://aloiroberto.wordpress.com/2009/09/16/mercurial-gnome-keyring-integration/

于 2010-04-06T11:39:27.283 に答える
23

上記のNOBODYは、初心者ユーザーに用語を説明/明確化しました。彼らは用語に混乱します

.hg / hgrc-このファイルは、ローカル/ワークスペースの場所/実際のリポジトリの.hgフォルダにあるリポジトリに使用されます。

〜/.hgrc--このファイルは以下のファイルとは異なります。このファイルは〜またはホームディレクトリにあります。

myremote.xxxx = ..... bb.xxxx=.....。

これは、水銀キーリング拡張機能を使用している場合の[auth]セクション/ディレクティブの下の行の1つです。そこに配置するサーバー名が、「hg clone」の実行中に使用するものと一致することを確認してください。一致しない場合、キーリングはユーザーが見つかりませんと表示します。以下の行のbbまたはmyremoteは、「hg clone http:/.../../ repo1 bb or myremote」を実行するときに指定する必要がある「エイリアス名」です。そうしないと、機能しないか、ローカルを確認する必要があります。リポジトリの.hg/hgrcファイルには、同じエイリアスが含まれています。つまり、(最後のパラメータとしてhg clone ..を実行しているときに指定したもの)。

明確な詳細については、次のリンクを参照してください。文法がすぐに書かれて申し訳ありません。

例:〜/ .hgrc(Linux / Unixではユーザーのホームディレクトリ)またはWindowsのmercurial.ini内のユーザーのホームディレクトリには、次の行が含まれています。

`"hg clone http://.../.../reponame myremote"`

、その後、httpリポジトリリンクごとにユーザー資格情報の入力を2回以上求められることはありません。[extensions]の下の〜/ .hgrcで、「mercurial_keyring="」または「hgext.mercurial_keyring=/path/to/your/mercurial_keyring.py」の行..これらの行の1つがそこにあるはずです。

[auth]
myremote.schemes = http https
myremote.prefix = thsusncdnvm99/hg
myremote.username = c123456

ユーザーがユーザー名/パスワードのプロンプトなしで、http://..../...で言及したことを気にせずに、Hg操作を複製または実行できるように、PREFIXプロパティを設定する方法を見つけようとしています。 Hgリポジトリリンクを使用しているときのサーバー名。IP、サーバー名、またはサーバーのFQDNにすることができます

于 2013-01-11T02:24:23.090 に答える
4

MacPorts を使用した Mac OSX での mercurial_keyring のインストール:

sudo port install py-keyring
sudo port install py-mercurial_keyring

~/.hgrc に以下を追加します。

# Add your username if you haven't already done so.
[ui]
username = email@address.com

[extensions]
mercurial_keyring =
于 2012-09-21T09:38:41.827 に答える
2

TortoiseHg を使用している場合は、添付のスクリーン ショットに示されている 3 つの手順を実行する必要があります。これにより、作業している特定のリポジトリの資格情報が追加されます。

ここに画像の説明を入力

グローバル設定を追加するには、ファイルC:\users\user.name\mercurial.iniにアクセスしてセクションを追加します。

[auth]
bb.prefix=https://bitbucket.org/zambezia/packagemanager
bb.username = $username
bb.password = $password

お役に立てれば。

于 2017-07-19T06:50:05.677 に答える
0

あなたの状況ではうまくいかないかもしれませんが、Putty の Pageant を使用して公開/秘密鍵を生成すると便利であることがわかりました。

bitbucket (.org) も使用している場合は、ユーザー アカウントに公開キーを提供する機能が提供され、リポジトリにアクセスするコマンドが自動的に保護されます。

再起動時に Pageant が起動しない場合は、Pageant へのショートカットを Windows の「スタート メニュー」に追加できます。ショートカットの「プロパティ」には、プライベート (.ppk) ファイルの場所が入力されている必要があります。 .

これで、Mercurial とローカル リポジトリは、SSH 形式を使用してプッシュ/プルするように設定する必要があります。

Windows または Mac/Linux 用のAtlassianのサイトにある詳細な手順を次に示します。

私の言葉を鵜呑みにする必要はありませんし、他にも方法があることは間違いありません。おそらく、ここで説明されている次の手順がより適しています。

  1. Start -> PuTTY -> PuttyGen から PuttyGen を起動します。
  2. 新しいキーを生成し、パスフレーズなしで .ppk ファイルとして保存します
  3. Putty を使用して、接続するサーバーにログインします。
  4. PuttyGen からの公開鍵テキストを ~/.ssh/authorized_keys のテキストに追加します
  5. Start -> Putty から Start -> Startup への .ppk ファイルへのショートカットを作成します。
  6. スタートアップ メニューから .ppk ショートカットを選択します (これは、スタートアップのたびに自動的に行われます)。
  7. システム トレイに Pageant アイコンが表示されますか? 右クリックして [新しいセッション] を選択します</li>
  8. 「ホスト名」フィールドにユーザー名@ホスト名を入力します
  9. これで自動的にログインします。
于 2016-08-24T11:52:39.090 に答える