Mam problemy z dostępem do repozytorium SVN przy użyciu TortoiseSVN 1.7.8.TortiseSVN svn + ssh Błąd: nie można połączyć się z repozytorium pod adresem URL ... Połączenie sieciowe zostało nieoczekiwanie zamknięte
Repozytorium SVN znajduje się na pudełku CentOS 6.3 z openssh 5.3p1:81.el6
i wygląda na prawidłowe funkcjonowanie.
# svnadmin --version
# svnadmin, version 1.6.11 (r934486)
mogę uzyskać dostęp do repozytorium z innego pole CentOS z tym poleceniem:
svn list svn+ssh://[email protected]/var/svn/joetest
ale gdy próbuję przeglądać repozytorium korzystając TortiseSVN z Win 7 stacji roboczej jestem w stanie to zrobić za pomocą następujące ścieżki:
svn+ssh://[email protected]/var/svn/joetest
otrzymuję następujący błąd z TortoiseSVN:
Unable to connect to a repository at URL 'svn+ssh://[email protected]/var/svn/joetest' To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file. Network connection closed unexpectedly
Jestem w stanie zalogować się przez SSH ze stacji roboczej za pomocą programu Putty.
Wyniki są takie same, jeśli próbuję uzyskać dostęp jako root.
Dałem własność repozytorium /var/svn/
do USER:USER
i pobiegł
chmod 2700 -R /var/svn/
.
Ponieważ mogę uzyskać dostęp do repozytorium przez ssh z innego Linux-a, uprawnienia nie wydają się być problemem.
Kiedy oglądam plik dziennika używając tail -fn 2000 /var/log/secure
, widzę po każdym TortiseSVN prosi o hasło:
Sep 26 17:34:31 dev sshd[30361]: Accepted password for USER from xx.xxx.xx.xxx port 59101 ssh2
Sep 26 17:34:31 dev sshd[30361]: pam_unix(sshd:session): session opened for user USER by (uid=0)
Sep 26 17:34:31 dev sshd[30361]: pam_unix(sshd:session): session closed for user USER
Właściwie jestem w stanie się zalogować, ale sesja jest wtedy zamknięty natychmiast.
Przyłapałem się na tym, że sesja jest otwierana dla użytkownika USER przez root (uid=0)
, co może być poprawne, ale wspomnę o tym na wypadek, gdyby miało to związek z problemem.
Zajrzałem do modyfikacji svnserve.conf
, ale z tego co wiem, nie jest używane podczas uzyskiwania dostępu do repozytorium poprzez svn+ssh
, prywatna instancja svnserve jest tworzona dla każdego logowania za pomocą tej metody. Z instrukcji:
There's still a third way to invoke svnserve, and that's in “tunnel mode”, with the -t option. This mode assumes that a remote-service program such as RSH or SSH has successfully authenticated a user and is now invoking a private svnserve process as that user. The svnserve program behaves normally (communicating via stdin and stdout), and assumes that the traffic is being automatically redirected over some sort of tunnel back to the client. When svnserve is invoked by a tunnel agent like this, be sure that the authenticated user has full read and write access to the repository database files. (See Servers and Permissions: A Word of Warning.) It's essentially the same as a local user accessing the repository via file:/// URLs.
Jedyne ustawienie niestandardowe w sshd_config
są:
Protocol 2 # to disable Protocol 1
SyslogFacility AUTHPRIV
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding no
Subsystem sftp /usr/libexec/openssh/sftp-server
Wszelkie myśli?
tylko myśl, spróbuj usuwając UŻYTKOWNIKa @ z adresu URL i czekając, aż żółw poprosi o poświadczenia. Nie jestem pewien, czy to zadziała, ale warto spróbować. – Scott
Dzięki za sugestię, ale ten sam wynik. – codewaggle
Kiedy otwierasz przeglądarkę repo Tortoise, jaki błąd ci daje? – Scott