プロンプトを回避する方法でSVNコマンドラインを使用してSSL証明書を永続的に自動受け入れるコマンドラインオプションはありますか?
これは、スタックオーバーフローでより適切ですか?
—
ジェームズマクマホン
プロンプトを回避する方法でSVNコマンドラインを使用してSSL証明書を永続的に自動受け入れるコマンドラインオプションはありますか?
回答:
SVNのバージョンによって多少異なります。最近の(1.6+)には通常のもの--non-interactive
(プロンプトを避けるために使用したいもの)があり、それはあなたが望むことをする--trust-server-cert
かもしれません。
を使用して--trust-server-cert
も、SSL証明書は永久に受け入れられません。入力リダイレクションを使用し、を使用せずに、コマンドライン経由でSSL証明書を永続的に受け入れることができます--non-interactive
。
Unix / Linuxの例を次に示します。
svn list [TARGET] << EOF
p
EOF
注:上記の「p」は(p)永続的なものです。
1.6.6 (r40053)
)では、残念ながらp
(永久に)オプションがまったく提供されません。そして、これは私がもう更新できない古代の箱にあるので
私のソリューションはexpectを使用しています。安全ではありませんが、他のソリューションでは機能しない場合に機能します。
#!/usr/bin/expect -f
set svn_username [lindex $argv 0]
set svn_password [lindex $argv 1]
set svn_url [lindex $argv 2]
spawn svn --username=${svn_username} --password=${svn_password} list ${svn_url}
expect "(R)eject, accept (t)emporarily or accept (p)ermanently? "
send -- "p\r"
expect "Store password unencrypted (yes/no)? "
send "no\r"
expect -re "root@.*:\/#"
証明書をダウンロードして、適切なディレクトリに配置できるはずです。または、CA証明書をダウンロードしてから、構成オプションssl-authority-filesを設定して、そのCAを信頼することができます。
本のSSL証明書管理セクションを参照してください。