Переместить сохраненную аутентификацию TortoiseSVN на другую машину?


Есть ли способ переместить сохраненный логин / пароль для TortoiseSVN в сетевой репозиторий с компьютера на компьютер? Только что получил новую машину, знаю свое имя пользователя, но не помню свой логин в хранилище.

Я знаю, что TortoiseSVN сохраняет некоторую информацию auth в каталогах %appdata% Subversionauth

Перешел к файлу, который я нашел в svn.просто; я вижу свое имя пользователя в нем открытым текстом, но пароль зашифрован. Я также вижу "wincrypt" в файле, так что это крипто вызванная функциональность.

Обычно я бы просто попросил администратора SVN сбросить его для меня, но он находится в отпуске до следующей недели, как и другой администратор для SVN.

Я могу погрузиться в исходный код TortoiseSVN и посмотреть, как выполняется аутентификация, но должен быть более простой способ. Я могу запустить Wireshark на успешной аутентификации со старых машин, если это будет полезно.

5 2

5 ответов:

Смотрите этот ответ: извлечение сохраненного пароля TortoiseSVN

Если у вас все еще есть доступ к старой машине и учетной записи пользователя Windows, то вы можете извлечь пароли, используя стороннюю утилиту "TortoiseSVN Password Decrypter".

Wireshark-еще одна хорошая альтернатива, но я не думаю, что она поможет вам для хранилищ SSL.

Решено! Оказывается, это было довольно просто решить.

Wireshark был ответом. Сделал захват связи между моей старой машиной и хостом репозитория, запустил браузер РЕПО из TortoiseSVN. Затем я запустил" Follow TCP Stream " в разговоре и нашел эту строку:

Авторизация: Базовая ZHIzeDppc0F3ZXNvbWU=

Вот сценарий Powershell для его декодирования:
$basic = "ZHIzeDppc0F3ZXNvbWU="
[Система.Текст.Кодировка]:: ASCII.GetString ([Система.Convert]:: FromBase64String ($basic))

Возвращает обычный текст: uname: pwd

Согласно файлу справки, TortoiseSVN хранит учетные данные в подпапках %appdata%\Subversion\auth:

  • svn.simple содержит учетные данные для обычной аутентификации (имя пользователя / пароль).
  • svn.ssl.server содержит сертификаты сервера SSL.
  • svn.username содержит учетные данные для аутентификации только по имени пользователя (пароль не требуется).
Я думаю, вы могли бы просто попробовать скопировать эти папки на другой машине.

Учетные данные шифруются с помощью API шифрования windows, используя данные от вошедшего в систему пользователя. Это означает, что шифрование основано на вашей учетной записи входа в систему Windows и поэтому не может быть скопировано на другую машину, даже если вы настроили пользователя с тем же именем пользователя и паролем.

Я думаю, что вы хотели бы, чтобы это Не было возможно, так как это означало бы, что любой может скопировать некоторые файлы и иметь возможность вносить изменения, используя вашу учетную запись SVN. Может быть, это и к лучшему, что это невозможно и что все более безопасно.

Вместо этого, вы должны разработать лучшую внутреннюю политику в отношении управления паролями, чтобы вы не зависели от определенных людей, находящихся вокруг для такого рода вещей (например, фактор шины ).