コンソールからsvn
操作を行うときにSubversionパスワードを保存する方法があるかどうか疑問に思っていました。コンソールは私が持っている唯一のオプションです。 Subversionアクションを実行しようとすると、たとえばsvn commit
、毎回アカウントパスワードの入力を求めます。このパスワードを何らかの形で保存して、毎回再入力する必要がないようにする方法はありますか?
~/.Subversion/config
には、おそらくstore-passwords = no
があります。それをyes
に変更します(または、デフォルトでyesになっているのでコメントアウトします)。次にSubversionにパスワードを指定するときに保存します。
~/.Subversion/config
の所有者と権限が正しいことを確認したい場合があります(パブリックまたはグループアクセスなし、600)。
使用しているプロトコルによって異なります。 SVN + SSHを使用している場合、SVNクライアントはパスワードに触れないため、パスワードを保存できません。SSHクライアントはパスワードを直接要求します。この場合、SSHキーとssh-agentを使用して、一定のプロンプトを回避できます。 svnserveプロトコルまたはHTTP(S)を使用している場合、SSHクライアントはパスワードを処理しており、保存できます。
ホームディレクトリの.Subversion
フォルダをクリアして、もう一度コミットしてみてください。パスワードの入力を求められ、パスワードを保存するかどうか尋ねられます。
~/.Subversion/servers
を編集する必要がありました。 store-plaintext-passwords = yes
を設定しました(以前はありませんでした)。それはトリックをしました。しかし、それは安全でないと考えられるかもしれません。
~/.Subversion/servers
ファイルの次の段落に注意してください。
「store-passwords」と「store-auth-creds」の両方を、configディレクトリの「servers」ファイルで指定できるようになりました。このセクションで指定されたものはすべて、「servers」ファイルで指定された設定によってオーバーライドされます。
少なくともSVNバージョン1.6.12向けです。したがって、~/.Subversion/config
を上書きするため、serversファイルも編集することに注意してください。
svn + sshを使用する場合、sshの公開キーをリモートマシンにコピーできます。
ssh-copy-id user@remotehost
私(Macユーザー)にとっての問題は、キーチェーンに既に資格情報のエントリが保存されていたが、アクセス権が正しくなかったことです。
キーチェーンアプリのエントリを削除し、svnを使用して再作成すると、問題が修正されました。
これらの素晴らしい答えはどれも、Ubuntuの新規インストールではうまくいきませんでした。代わりに、 this answerからの手がかりが私にとってのトリックでした。
~/.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
コマンドがないため、おそらく作業コピーを再チェックアウトする必要があることです。とにかく Linus Torvalds Subversionについてどう思うかについて相談することができます;)
残念ながら、答えは、保護された秘密鍵でssh + svnのパスワードを要求する問題を解決しませんでした。いくつかの研究の後、私は見つけた:
ssh-add
linuxコンピューターをお持ちの場合はユーティリティ。キーが/home/username/.ssh/
に保存されていることを確認し、ターミナルでこのコマンドを入力します。
私は 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。
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
のいずれかを使用しようとします。