Zastanawiałem się, czy istnieje sposób na zapisanie mojego hasła Subversion podczas wykonywania svn
operacji z konsoli. Konsola to jedyna opcja, jaką mam. Kiedy próbuję wykonać jakąkolwiek akcję Subversion, np svn commit
. Za każdym razem pyta o hasło do konta. Czy jest sposób, aby jakoś zapisać to hasło, aby nie musieć go za każdym razem ponownie wpisywać?
106
Odpowiedzi:
W
~/.subversion/config
, prawdopodobnie maszstore-passwords = no
. Zmień je nayes
(lub po prostu zakomentuj, ponieważ domyślnie jest na tak), a następnym razem, gdy podasz Subversion swoje hasło, powinno je zapisać.Możesz chcieć upewnić się, że właściciel i uprawnienia
~/.subversion/config
są poprawne (brak dostępu publicznego lub grupowego; 600).źródło
Red Hat Linux 2.6.18
. jakiś pomysł, gdzie to mogłoby być?/etc/subversion/config
systemu plików działa zgodnie z oczekiwaniami. Dziękistore-passwords
Opcja wconfig
jest teraz przestarzała, zgodnie z niektórymi domyślnymi komentarzami, które znalazłem w moimconfig
pliku; została zastąpiona tą samą opcją wservers
.)To zależy od używanego protokołu. Jeśli używasz SVN + SSH, klient SVN nie może zapisać twojego hasła, ponieważ nigdy go nie dotyka - klient SSH prosi o to bezpośrednio. W takim przypadku możesz użyć klucza SSH i agenta ssh, aby uniknąć ciągłych monitów. Jeśli używasz protokołu svnserve lub HTTP (S), klient SSH obsługuje Twoje hasło i może je zapisać.
źródło
.ssh/config
, dołączyć klucz publiczny do serwera SVN.Spróbuj wyczyścić
.subversion
folder w katalogu domowym i spróbuj ponownie zatwierdzić. Powinien poprosić o podanie hasła, a następnie zapytać, czy chcesz zapisać hasło.źródło
Musiałem edytować
~/.subversion/servers
. Ustawiłemstore-plaintext-passwords = yes
(nie było wcześniej). To załatwiło sprawę. Można to jednak uznać za niepewne.źródło
store-passwords = yes
.Zwróć uwagę na następujący akapit z
~/.subversion/servers
pliku:Dotyczy to przynajmniej SVN w wersji 1.6.12. Pamiętaj więc, aby edytować plik serwerów również wtedy, gdy zastępuje
~/.subversion/config
.źródło
Jeśli używasz svn + ssh , możesz skopiować swój publiczny klucz ssh na zdalną maszynę:
źródło
Dla mnie (użytkownika Maca) problem polegał na tym, że w pęku kluczy był już zapisany wpis dla moich poświadczeń, ale prawa dostępu były nieprawidłowe.
Usunięcie wpisu w aplikacji łańcucha kluczy, a następnie ponowne utworzenie go za pomocą svn rozwiązało problem.
źródło
Żadna z tych wspaniałych odpowiedzi nie działała dla mnie przy nowej instalacji Ubuntu. Zamiast tego wskazówka z tej odpowiedzi załatwiła sprawę.
Musiałem zezwolić na „proste” przechowywanie haseł, ustawiając to puste w
~/.subversion/config
:Nie było istniejącego ustawienia, więc bycie pustym jest znaczące.
Było to oprócz:
w
~/.subversion/servers
.źródło
Używanie zwykłego tekstu może nie być najlepszym wyborem, jeśli hasło jest kiedykolwiek używane jako coś innego.
Popieram zaakceptowaną odpowiedź, ale nie zadziałała - z bardzo konkretnego powodu: chciałem użyć albo
kwallet
albognome-keyring
magazynu haseł. Próbowałem zmienić ustawienia, we wszystkich czterech plikach:Nawet po tym, jak wszystko było ustawione tak samo, z
password-stores
i nazwą KWallet (domyślna może być źle, prawda?), Nie działała i ciągle pytała o hasło. Pliki w~/.subversion
mają uprawnienia 600.Cóż, w tym momencie możesz spróbować sprawdzić jedną prostą rzecz:
Jeśli dostaniesz:
wtedy możesz podejrzewać z dużym prawdopodobieństwem, że ten klient został zbudowany ze źródła, lokalnie, przez twojego administratora (którym możesz być Ty, jak w moim przypadku).
Subversion to paskudna bestia do kompilacji , bardzo łatwa do przypadkowego zbudowania bez obsługi HTTP lub - jak w moim przykładzie - bez obsługi zaszyfrowanych magazynów haseł (potrzebujesz albo Gnome, albo KDE, i to dużo!). Ale
./configure
skrypt ci tego nie powie, a otrzymasz mniej funkcjonalnesvn
polecenie.W takim przypadku możesz wrócić do klienta, który został dostarczony z dystrybucją, zwykle w formacie
/usr/bin/svn
. Wadą jest to, że prawdopodobnie będziesz musiał ponownie sprawdzić kopie robocze, ponieważ nie masvn downgrade
polecenia. W każdym razie możesz skonsultować się z Linusem Torvaldsem, co należy myśleć o Subversion;)źródło
Aby dodać do odpowiedzi Heatha: Wygląda na to, że Subversion 1.6 domyślnie wyłączył przechowywanie haseł, jeśli nie może przechowywać ich w postaci zaszyfrowanej. Możesz zezwolić na przechowywanie niezaszyfrowanych haseł, jawnie ustawiając
password-stores =
(czyli pustą wartość) w~/.subversion/config
.Aby sprawdzić, którego magazynu haseł używa Subversion, zajrzyj do
~/.subversion/auth/svn.simple
. Zawiera kilka plików, każdy z tabelą skrótów z prostym kodowaniem klucz / wartość. Wsvn:realmstring
każdym pliku określa, dla której dziedziny ten plik jest przeznaczony. Jeśli plik manastępnie przechowuje hasło w postaci zwykłego tekstu gdzieś w tym pliku, we
K 8 password
wpisie. W przeciwnym razie próbuje użyć jednego ze skonfigurowanych plikówpassword-stores
.źródło
Wszystkie wymienione tutaj metody nie działają dla mnie. Zbudowałem Subversion ze źródeł i dowiedziałem się, że muszę uruchomić konfigurację,
--enable-plaintext-password-storage
aby obsługiwać tę funkcję.źródło
Aby podkreślić, co Tomasz Gandor i Domain powiedzieli o posiadaniu odpowiedniej wersji svn i że została ona skompilowana, aby umożliwić przechowywanie haseł w postaci zwykłego tekstu, musisz zweryfikować, co masz:
Przeciw:
Gdy zobaczysz, że twoja wersja svn została włączona do przechowywania haseł w postaci zwykłego tekstu, zastosuj wszystkie pozostałe odpowiedzi tutaj.
źródło
Używam klienta TortoiseSVN w systemie Windows i dla mnie ustawienie parametru store-passwords jako yes w
%USERPROFILE%\AppData\Roaming\Subversion\config
nie pomaga w przechowywaniu hasła.Hasło zostało pomyślnie zapisane po usunięciu tego folderu (na wypadek zmiany nazwy):
Środowisko:
źródło
Niestety odpowiedzi nie rozwiązały problemu z pytaniem o hasło do ssh + svn z chronionym kluczem prywatnym. Po kilku badaniach znalazłem:
narzędzie, jeśli masz komputer z systemem Linux. Upewnij się, że masz zapisane klucze
/home/username/.ssh/
i wpisz to polecenie w terminalu.źródło