Bagaimana Anda menerima sertifikat SSL melalui baris perintah SVN?

20

Apakah ada opsi baris perintah untuk secara otomatis menerima sertifikat SSL secara permanen menggunakan perintah SVN dengan cara yang menghindari prompt?

James McMahon
sumber
Apakah ini lebih cocok di Stack Overflow?
James McMahon

Jawaban:

20

Tergantung pada versi SVN Anda. Yang terbaru (1.6+) memiliki yang biasa --non-interactive(yang ingin Anda gunakan untuk menghindari prompt) dan juga --trust-server-certyang dapat melakukan apa yang Anda inginkan.

pjz
sumber
Solusi ini sepertinya berhasil. Sayangnya sertifikat baris perintah terima tidak menyelesaikan masalah awal saya. Oh well, setidaknya saya tahu apa yang tidak berfungsi sekarang.
James McMahon
Jika ini masih tidak berhasil, mungkin karena Anda tidak dapat mengakses / membuat direktori .subversion di direktori home Anda. Solusi ditemukan di sini: chipsandtv.com/articles/svn-invalid-certificates
icc97
Tautan chipsandtv.com sudah mati. Apakah ada sumber lain?
Joe McMahon
Saya akhirnya harus menggunakan kedua opsi, sekarang berfungsi, terima kasih!
rogerdpack
10

Menggunakan --trust-server-certtidak akan secara permanen menerima sertifikat SSL. Anda dapat secara permanen menerima sertifikat SSL melalui baris perintah menggunakan Input Redirection dan tidak menggunakan --non-interactive.

Berikut ini contoh untuk Unix / Linux:

svn list [TARGET] << EOF
p
EOF

CATATAN: "p" di atas adalah untuk (p) secara permanen.

Jesse
sumber
Yah, versi saya ( 1.6.6 (r40053)) sayangnya sama sekali tidak akan menawarkan opsi p(permanen) sama sekali. Dan karena ini ada di kotak kuno yang tidak dapat saya perbarui lagi ...
0xC0000022L
2

Solusi saya menggunakan harapkan. Itu tidak aman tetapi itu akan bekerja ketika solusi lain tidak.

#!/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@.*:\/#"
Matt Friedman
sumber
0

Anda harus dapat mengunduh sertifikat dan kemudian meletakkannya di direktori yang sesuai. Atau Anda dapat mengunduh sertifikat CA dan kemudian mengatur opsi konfigurasi ssl-authority-file untuk mempercayai CA itu.

Lihat bagian Manajemen Sertifikat SSL di buku ini.

Sakit kepala
sumber
Saya berada dalam situasi yang sangat aneh di sini, lihat serverfault.com/questions/7648/… , jadi saya ingin dapat melakukannya dalam satu perintah.
James McMahon