svn
コンソールから操作するときにSubversionのパスワードを保存する方法があるかどうか疑問に思っていました。コンソールが唯一の選択肢です。たとえばsvn commit
、Subversionアクションを実行しようとすると、毎回アカウントパスワードの入力を求められます。このパスワードを何らかの方法で保存して、毎回再入力する必要がないようにする方法はありますか?
svn
コンソールから操作するときにSubversionのパスワードを保存する方法があるかどうか疑問に思っていました。コンソールが唯一の選択肢です。たとえばsvn commit
、Subversionアクションを実行しようとすると、毎回アカウントパスワードの入力を求められます。このパスワードを何らかの方法で保存して、毎回再入力する必要がないようにする方法はありますか?
回答:
では~/.subversion/config
、おそらくあなたは持っていstore-passwords = no
ます。これをyes
(またはデフォルトでyesになっているのでコメントアウトする)に変更し、次にSubversionにパスワードを与えると、パスワードが保存されます。
の所有者と権限~/.subversion/config
が正しいことを確認する必要がある場合があります(パブリックまたはグループアクセスなし、600)。
Red Hat Linux 2.6.18
。それがどこにある可能性がありますか?
/etc/subversion/config
システムの作成後、期待どおりに動作します。ありがとう
store-passwords
オプションconfig
は現在非推奨config
です。それはの同じオプションに置き換えられていますservers
。)
使用しているプロトコルによって異なります。SVN + SSHを使用している場合、SVNクライアントはパスワードに決して触れないため、SVNクライアントはパスワードを保存できません。SSHクライアントは直接パスワードを要求します。この場合、SSHキーとssh-agentを使用して、一定のプロンプトを回避できます。svnserveプロトコルまたはHTTP(S)を使用している場合、SSHクライアントがパスワードを処理しており、それを保存できます。
.ssh/config
、公開鍵をSVNサーバーに追加できます。
.subversion
ホームディレクトリのフォルダをクリアして、もう一度コミットしてみてください。パスワードの入力が求められ、パスワードを保存するかどうかを尋ねられます。
~/.subversion/servers
ファイルの次の段落に注意してください。
「store-passwords」と「store-auth-creds」の両方を、configディレクトリの「servers」ファイルで指定できるようになりました。このセクションで指定されたものはすべて、「servers」ファイルで指定された設定によって上書きされます。
少なくともSVNバージョン1.6.12用です。したがって、serversファイルをオーバーライドするときにも編集することを忘れないでください~/.subversion/config
。
svn + sshを使用する場合は、公開sshキーをリモートマシンにコピーできます。
ssh-copy-id user@remotehost
Ubuntuの新規インストールでは、これらの素晴らしい答えはどれもうまくいきませんでした。代わりに、この答えからの手がかりが私にとってはトリックでした。
私はこれを空に設定することで「シンプルな」パスワードストアを許可する必要がありました~/.subversion/config
:
password-stores =
既存の設定はなかったため、空であることは重要です。
これに加えて:
store-passwords = yes
の中で~/.subversion/servers
。
パスワードが他の目的で使用される場合は、プレーンテキストを使用するのは最善の選択ではない可能性があります。
受け入れられた回答はサポートしていますが、私にはうまくいきませんでした。非常に具体的な理由から、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
コマンドがないため、おそらく作業コピーを再チェックアウトする必要があるでしょう。とにかく、Subversionについてどう思うかについてはLinus Torvaldsに相談してください;)
Heathの回答に追加するには:暗号化された形式でパスワードを保存できない場合、Subversion 1.6はデフォルトでパスワードの保存を無効にしているようです。で明示的にpassword-stores =
(つまり、空の値に)設定することで、暗号化されていないパスワードの保存を許可できます。~/.subversion/config
。
Subversionが使用するパスワードストアを確認するには、を参照してください~/.subversion/auth/svn.simple
。これにはいくつかのファイルが含まれており、それぞれが単純なキー/値エンコーディングを含むハッシュテーブルです。svn:realmstring
各ファイルのは、そのファイルの対象となるレルムを識別します。ファイルに
K 8
passtype
V 6
simple
次に、そのファイルのどこか、K 8 password
エントリにプレーンテキストでパスワードを保存します。そうでない場合は、構成されたの1つを使用しようとしますpassword-stores
。
Tomasz GandorとDomainが正しいバージョンのsvnを持っていること、およびプレーンテキストのパスワードストレージを有効にするようにコンパイルされていることを強調するために、持っているものを確認する必要があります。
svn --version
svn, version 1.9.7 (r1800392)
...
WARNING: Plaintext password storage is enabled!
...
The following authentication credential caches are available:
* Plaintext cache in /gr/home/ffvdqb/.subversion
* GPG-Agent
対:
svn --version
svn, version 1.12.2 (r1863366)
...
The following authentication credential caches are available:
* Gnome Keyring
* GPG-Agent
* KWallet (KDE)
お使いのバージョンのsvnがプレーンテキストのパスワードストレージで有効になっていることがわかったら、残りのすべての回答をここに適用します。
私はWindowsでTortoiseSVNクライアントを使用しており、私にとっては、store-passwordsパラメーターをyesに設定しています%USERPROFILE%\AppData\Roaming\Subversion\config
ても、パスワードの保存に役立ちません。
このフォルダを削除した後、パスワードは正常に保存されました(名前を変更する場合に備えて):
%USERPROFILE%\AppData\Roaming\Subversion\auth
環境:
Windows 7, TortoiseSVN 1.7.11 (Build 23600 - 64 bit, 2012-12-12T19:08:52), Subversion 1.7.8.