2

UNIXのSVNコマンドラインクライアントは、パスワードを〜/.subversionフォルダーに保存します。初めて、クライアントはパスワードを永続的に保存する必要があるかどうかを尋ねます(p)。これは、/。subversion/serversでも構成できます。

store-passwords = no

パスワードを永続的に保存することが望ましくない一般的なログインがいくつかあります。ただし、SVNコマンドごとにパスワードを入力するのは面倒です。ログアウト時にクリアされたセッションのパスワードのみを保存する方法はありますか?

4

1 に答える 1

0

SSHベースのSubversion接続を使用している場合は、パスフレーズで暗号化された秘密鍵を使用して公開鍵認証を使用しssh-agent、セッションの開始時に鍵のロックを解除できます。キーをメモリに保持しているためssh-agent、キーが終了すると、キーは使用できなくなります。

$ ssh-agent /bin/bash

これで、キーのロックを解除してSubversionを使用できるサブシェルが開始されます。

$ ssh-add ~/.ssh/id_rsa_svn
$ svn co svn+ssh://svn.example.com/svn/code

完了したら、サブシェルを終了します。

$ exit

これでエージェントは実行されなくなったため、キーは使用できなくなりました。

$

(一部のデスクトップ環境は独自のSSHエージェント実装を提供し、これらは「exit」がキーをクリアするという仮定を混乱させる可能性があることに注意してください。ただし、これらは通常、ログイン時にキーリングのロックを解除するため、安全性は同等である必要があります。)

パスワードベースの認証でこれを行う方法を私は知りません。あなたの特定の種類のUnixが.logoutファイルなどをサポートしているかどうかを確認し、Subversionのパスワードストレージからのパスワードの削除をスクリプト化しようと試みることができると思います。ただし、このソリューションにはいくつかの欠点があります。スクリプトの実行をシェルに依存している、スクリプトが失敗する可能性がある、暗号化されていない状態でパスワードをディスクに書き込んでいる。

于 2013-02-25T09:50:47.493 に答える