web-dev-qa-db-ja.com

Mercurialでユーザー名とパスワードを保存するにはどうすればいいですか?

私は個人的なプロジェクトでMercurialを使っていましたが、サーバーに何かをプッシュしたいときはいつもユーザー名とパスワードを入力してきました。

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

[ui]
username = MY_USER_NAME
password = MY_PASSWORD

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

266
satoru

あなたの.hgrcまたはMercurial.iniファイルにauthセクションを作ることができます。

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

「bb」部分は任意の識別子で、プレフィックスとユーザー名およびパスワードを一致させるために使用されます。さまざまなサイトでさまざまなユーザー名とパスワードの組み合わせを管理するのに便利です(プレフィックス)。

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

詳細については、参照してください: http://hgtip.com/tips/advanced/2009-10-01-configuring-user-auth-https/

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

323
Laurens Holst

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


1.正しい方法 - 〜/ .hgrcファイルを更新してください

私のために働くフォーマットは(私の〜/ .hgrcファイルで)これです

[ui]
username=Chris McCauley <[email protected]>

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


一意のタグを前に付けることで、プレフィックス、ユーザー名、パスワードを3連で追加することで、必要なだけレポを設定できます。

これはMercurial 1.3でのみ機能し、明らかにあなたのユーザー名とパスワードはプレーンテキストです - 良くありません。


2.安全な方法 - パスワードを使用してSSHでAVOIDを使用する

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


設定に関するより多くの情報を見つけることができます ここでパスワードなしのログイン


3.キーリングエクステンション

安全な方法が欲しいがSSHに慣れていないのなら、これを試してみませんか?

ドキュメントから...

エクステンションは(デフォルトで行われているように)与えられたリモートリポジトリへの最初のpull/push /からのHTTPパスワードの入力を促しますが、パスワードデータベースにパスワードを保存します(usernameとremote repository urlの組み合わせによってキー入力されます)。次回の実行時に、.hg/hgrc内のユーザー名、次にパスワードデータベース内の適切なパスワードを確認し、見つかった場合はそれらの資格情報を使用します。

もっと詳しい情報があります ここ

167
Chris McCauley

誰もキーリングエクステンションについて言及しませんでした。これは、ユーザー名とパスワードをシステムのキーリングに保存します。これは、前述のようにパスワードを静的ファイルに保存するよりもはるかに安全です。以下のステップを実行してください。私はこれを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

64
user570626

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

[paths]
default = http://username:[email protected]/myproject

(このようにしてパスワードをプレーンテキストで保存します)

同じドメインの下でいくつかのプロジェクトに取り組んでいるのであれば、~/.hgrcファイルに書き換え規則を追加して、これをすべての人に繰り返さないようにすることができます。プロジェクト:

[rewrite]
http.//mydomain.com = http://username:[email protected]

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

Gnomeの下で作業しているのであれば、MercurialとGnome Keyringを統合する方法をここで説明します。

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

30
Roberto Aloi

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

.hg/hgrc - このファイルは、実際のリポジトリの.hgフォルダ内のlocal/workspace location /にあるリポジトリに使用されます。

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

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

Mercurialのキーリング拡張機能を使用している間、これは[auth] section/directiveの下の行の1つです。あなたがそこに置いたサーバー名が "hg clone"をしている間に使っているものと一致することを確認してください。以下の行のbbまたはmyremoteは、 "hg clone http:/.../../ repo1 bbまたはmyremote"を実行する際に指定しなければならない "エイリアス名"です。それ以外の場合は機能しません。リポジトリの.hg/hgrcファイルにも同じエイリアス、つまり(最後のパラメータとしてhg cloneを実行しているときに指定したもの)が含まれています。

PS明確な詳細については以下のリンクを、迅速に書かれた文法のために申し訳ありません。

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

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

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

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

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

23
Arun Sangal

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 protected]

[extensions]
Mercurial_keyring =
3
ftvs

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

enter image description here

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

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

お役に立てれば。

2
A.B.

あなたの状況ではうまくいくかもしれないし、うまくいかないかもしれませんが、私はPuTTYのPageantを使って公開鍵/秘密鍵を生成するのが便利だと思いました。

あなたがbitbucket(.org)でも作業しているのであれば、それはあなたのユーザアカウントに公開鍵を提供する能力をあなたに与えるでしょう、そしてリポジトリに手を差し伸べるコマンドは自動的に保護されるでしょう。

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

これで、MercurialとあなたのローカルリポジトリはSSHフォーマットを使ってPush/pullに設定される必要があります。

Atlassian のWindows用サイトOR Mac/Linuxに関する詳細な手順は以下のとおりです。

あなたは私のことばを理解する必要はありませんし、それを行う他の方法も間違いありません。たぶんこれらのステップ ここで説明されている はあなたのためのものです:

  1. [スタート] - > [PuTTY] - > [PuttyGen]からPuttyGenを起動します。
  2. 新しいキーを生成し、パスフレーズなしで.ppkファイルとして保存します
  3. PuTTYを使用して、接続したいサーバーにログインします。
  4. PuttyGenの公開鍵テキストを〜/ .ssh/authorized_keysのテキストに追加します。
  5. スタート - > PuTTYからスタート - >スタートアップへの.ppkファイルへのショートカットを作成します。
  6. スタートアップメニューから.ppkショートカットを選択します(これはスタートアップごとに自動的に行われます)。
  7. システムトレイのPageantアイコンを見てください。それを右クリックして「新規セッション」を選択してください
  8. 「ホスト名」フィールドにusername @ hostnameと入力します。
  9. 自動的にログインします。
0
veeTrain