У меня есть скрипт bash, который необходимо проверить в результате теста в SVN. Проблема в том, что всякий раз, когда я фиксирую svn, он требует имя пользователя и пароль, которые я действительно НЕ хочу включать в свой скрипт. Я довольно новичок в Linux/Cygwin Land, поэтому я знаю, что может быть что-то очевидное ....

Я использую Cygwin на коробке Windows 8

1 ответ1

1

В этом нет ничего очевидного. Но вот несколько идей:

  1. Когда у меня был скрипт на работе, который нуждался в доступе к svn, я создал новое имя пользователя только для скрипта и заставил скрипт знать, как рассчитать пароль. Это безопасность от неясности, которая не безопасна, но она помешала случайному наблюдателю определить пароль. (И поскольку у всех сотрудников, которые будут иметь доступ к сценарию, также есть свои собственные имена входа в Subversion, это на самом деле не представляет угрозы для безопасности.)

  2. Что-то, о чем я не задумывался, когда создавал свой скрипт, но могло бы сработать: если вы можете ограничить доступ к файлу так, чтобы только у вашего пользователя cygwin и / или windows был доступ для чтения к файлу секретного ключа, ваш скрипт мог бы использовать gpg с этим ключом, чтобы зашифровать / расшифровать файл, содержащий пароль имени пользователя сценария, и использовать его для доступа к svn. Я не знаю, что это действительно более безопасно, чем первый или второй вариант, потому что вы должны иметь секретный ключ без пароля (в противном случае вы находитесь в той же ситуации, что и)

  3. Если вы доверяете svn для хранения паролей, вы можете один раз использовать имя пользователя scriptuser, сделать так, чтобы оно сохраняло пароль, и таким образом иметь доступ к svn для сценария.

Возможно, вы захотите посмотреть, если https://stackoverflow.com/questions/3824513/svn-encrypted-password-store и / или каков наилучший способ хранения зашифрованного пароля SVN на сервере Ubuntu? может помочь вам сохранить пароль в зашифрованном виде, а не в виде открытого текста. На моей работе svn не был скомпилирован с поддержкой gnome-keyring или kwallet, поэтому я не смог опробовать его, чтобы дать вам более подробную информацию о том, как это сделать. Но я думаю, что в Cygwin svn они будут скомпилированы, или вы можете перекомпилировать.

Я думаю, что svn --version скажет вам, если gnome-keyring или kwallet скомпилированы в; если нет, вы также можете 'ldd which svn ', в котором будут перечислены все связанные библиотеки. Ищите что-то вроде libsvn_auth_gnome_keyring-1.so или предположительно похожее для kwallet. (спасибо http://blogs.collab.net/subversion/subversion-16-security-improvements#.Vkan8b9mpu8 и http://technicalprose.blogspot.com/2011/06/using-subversion-with-gnome-keyring.html)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .