web-dev-qa-db-ja.com

コンソールからSubversionを使用するときにパスワードを保存する方法

コンソールからsvn操作を行うときにSubversionパスワードを保存する方法があるかどうか疑問に思っていました。コンソールは私が持っている唯一のオプションです。 Subversionアクションを実行しようとすると、たとえばsvn commit、毎回アカウントパスワードの入力を求めます。このパスワードを何らかの形で保存して、毎回再入力する必要がないようにする方法はありますか?

96
john mcdonald

~/.Subversion/configには、おそらくstore-passwords = noがあります。それをyesに変更します(または、デフォルトでyesになっているのでコメントアウトします)。次にSubversionにパスワードを指定するときに保存します。

~/.Subversion/configの所有者と権限が正しいことを確認したい場合があります(パブリックまたはグループアクセスなし、600)。

100
Michael Mrozek

使用しているプロトコルによって異なります。 SVN + SSHを使用している場合、SVNクライアントはパスワードに触れないため、パスワードを保存できません。SSHクライアントはパスワードを直接要求します。この場合、SSHキーとssh-agentを使用して、一定のプロンプトを回避できます。 svnserveプロトコルまたはHTTP(S)を使用している場合、SSHクライアントはパスワードを処理しており、保存できます。

52
Andrew Medico

ホームディレクトリの.Subversionフォルダをクリアして、もう一度コミットしてみてください。パスワードの入力を求められ、パスワードを保存するかどうか尋ねられます。

33
Earlz

~/.Subversion/serversを編集する必要がありました。 store-plaintext-passwords = yesを設定しました(以前はありませんでした)。それはトリックをしました。しかし、それは安全でないと考えられるかもしれません。

17
hajamie

~/.Subversion/serversファイルの次の段落に注意してください。

「store-passwords」と「store-auth-creds」の両方を、configディレクトリの「servers」ファイルで指定できるようになりました。このセクションで指定されたものはすべて、「servers」ファイルで指定された設定によってオーバーライドされます。

少なくともSVNバージョン1.6.12向けです。したがって、~/.Subversion/configを上書きするため、serversファイルも編集することに注意してください。

7
Rusu Bogdan

svn + sshを使用する場合、sshの公開キーをリモートマシンにコピーできます。

ssh-copy-id user@remotehost
6
Michael Schmid

私(Macユーザー)にとっての問題は、キーチェーンに既に資格情報のエントリが保存されていたが、アクセス権が正しくなかったことです。

キーチェーンアプリのエントリを削除し、svnを使用して再作成すると、問題が修正されました。

4
trias

これらの素晴らしい答えはどれも、Ubuntuの新規インストールではうまくいきませんでした。代わりに、 this answerからの手がかりが私にとってのトリックでした。

~/.Subversion/configでこれを空に設定して、「単純な」パスワードストアを許可する必要がありました。

password-stores =

既存の設定はなかったので、空であることが重要です。

これは次のものに追加されました。

store-passwords = yes

~/.Subversion/serversで。

3
Heath Raftery

パスワードが何か他のものとして使用される場合、プレーンテキストを使用することは最良の選択ではないかもしれません。

私は受け入れられた答えを支持しますが、私にとってはうまくいきませんでした-非常に特定の理由で:kwalletまたはgnome-keyringのいずれかのパスワードストアを使用したかったのです。 4つのファイルすべての設定を変更してみました。

/etc/Subversion/config
/etc/Subversion/servers
~/.Subversion/config
~/.Subversion/servers

password-storesとKWallet名(デフォルトは間違っているかもしれません)を使用してすべて同じに設定した後でも、機能せず、永久にパスワードを要求し続けました。 ~/.Subversionのファイルには、アクセス許可600がありました。

さて、その時点で、1つの簡単なことを確認してみてください。

which svn

あなたが取得する場合:

/usr/bin/local/svn

次に、このクライアントがローカルで、管理者(私の場合のように自分自身である可能性があります)によってソースから構築された可能性が高いと疑うかもしれません。

Subversionはコンパイルするのが厄介な獣です、HTTPサポートなしで誤ってビルドするのは非常に簡単です-または私の例のように-暗号化されたパスワードストアのサポートなしGnomeまたはKDE開発ファイルのいずれか、およびそれらの多くが必要です!)。しかし、./configureスクリプトはそれを通知せず、機能性の低いsvnコマンドを取得するだけです。

その場合、ディストリビューションに付属しているクライアントに戻ることができます。通常、/usr/bin/svnにあります。欠点は-svn downgradeコマンドがないため、おそらく作業コピーを再チェックアウトする必要があることです。とにかく Linus Torvalds Subversionについてどう思うかについて相談することができます;)

3
Tomasz Gandor

残念ながら、答えは、保護された秘密鍵でssh + svnのパスワードを要求する問題を解決しませんでした。いくつかの研究の後、私は見つけた:

ssh-add

linuxコンピューターをお持ちの場合はユーティリティ。キーが/home/username/.ssh/に保存されていることを確認し、ターミナルでこのコマンドを入力します。

1
www

私は TortoiseSVN クライアントをWindowsで使用していますが、%USERPROFILE%\ AppData\Roaming\Subversion\configでstore-passwordsパラメーターをyesに設定してもパスワードの保存に役立ちません。

このフォルダーを削除した後、パスワードは正常に保存されました(名前を変更する場合に備えて)。

%USERPROFILE%\AppData\Roaming\Subversion\auth

環境:

Windows 7、TortoiseSVN 1.7.11(ビルド23600-64ビット、2012-12-12T19:08:52)、Subversion 1.7.8。

0
Anton Arkhipkin

Heathの回答に追加するには:暗号化された形式でパスワードを保存できない場合、Subversion 1.6はデフォルトでパスワードの保存を無効にしているようです。 password-stores =~/.Subversion/config(つまり、空の値)を明示的に設定することにより、暗号化されていないパスワードの保存を許可できます。

Subversionが使用するパスワードストアを確認するには、~/.Subversion/auth/svn.simpleを確認します。これには複数のファイルが含まれ、各ファイルは単純なキー/値エンコーディングを持つハッシュテーブルです。各ファイルのsvn:realmstringは、そのファイルがどのレルムのためのものかを識別します。ファイルに

K 8
passtype
V 6
simple

次に、そのファイルのK 8 passwordエントリのどこかに、パスワードをプレーンテキストで保存します。それ以外の場合、構成されたpassword-storesのいずれかを使用しようとします。

0
thakis