
svn
自動化されたスクリプトで、私のhttpsユーザー名+パスワードを〜/ .subversionに保存しようとしています。コマンドラインから資格情報を渡すことはできますが、暗号化されていないパスワードを保存するように求められません。残念ながら、これは〜/.subversion/を生成しません:
svn --non-interactive --trust-server-cert --username myusername --password secret co https://private.example.com/src/repo/
bower install
ちなみに、私はパスワードbower.json
で保護されたsvnリポジトリへの参照を呼び出すDockerfileに対してこれを行いたいと思います。残念ながら、bower
コマンドラインまたは環境を介してsvn資格情報を渡す方法はありません。
私は現在svnをインタラクティブに実行して〜/ .subversionを作成し、ディレクトリ全体を圧縮してADD
Dockerfileに保存することでこの問題を解決しています。 ~/.subversionのファイル形式を見てスクリプトを使用して生成できますが、むしろsvnが実行するようにしておきます。
答え1
--username
有効または--password
無効にすると、--non-interactive
資格情報が保存されます--trust-server-cert
。
私はあなたが証明書を受け入れるように求めるメッセージを使用して--non-interactive
避けていると仮定します。--trust-server-cert
これらのパラメータなしでこのメッセージを表示したくない場合は、スクリプトを~/.subversion/auth/svn.ssl.server
。現在、スクリプトにこのソリューションを使用しています。
答え2
明らかに、--non-interactive
ユーザー名は保存されましたが、パスワードは保存されませんでした。次の場所でパスワード保存を有効にしました~/.subversion/servers
。
store-passwords = yes
store-plaintext-passwords = yes
store-auth-creds = yes
見てみるとsvn help
、関連するコマンドやオプションが1つもないようです。これは不可能だと思います。 SVN開発者にバグレポートを確認して送信するように依頼する必要があります。
以下のファイル形式は、auth
ユーザーがスクリプトを直接作成したい形式ではありません。さらに、認証記録のファイル名がハッシュであるようです。これはスクリプトフレンドリーではありません。パスワードリストをハードコードするための特別なファイル形式、またはコマンドラインからそれを制御する方法が必要です。
これは私が以下から見るものです~/.subversion/auth/svn.simple/
:
ファイル名935...dc9e
(32文字)。
コンテンツ:
K 8
passtype
V 6
simple
K 8
password
V 8
p@$$w0rd
K 15
svn:realmstring
V 48
<https://svn.someplace.com:443> VisualSVN Server
K 8
username
V 5
johny
答え3
セキュリティが問題にならない孤立した環境でこの問題が発生し、svn ls
(linux)コマンドの助けを借りて、正しい資格情報を使用してリポジトリで簡単に実行して解決しましたyes
。~/.subversion
動作します。具体的には:
rm -fr ~/.subversion yes yes | svn --username=user --password=guest ls svn://server/repo &>/dev/null
次のすべてのsvnコマンドは、このサーバーでこれらの資格情報を使用します。もちろん、これはそのオプションを使用してすべてのyes yes
svn--password
コマンドにパイプすることができます。
楽しむ!