Thanks for the response, Ildar.
I am also guessing this is a configuration problem, though it’s strange that I didn’t have trouble when I tried this a year ago – as far as I recall, it “just worked” on my test platform. Unfortunately I don’t have that system available to analyze anymore, but I did keep the configuration file, which doesn’t even have the other lines in the “auth” section commented, as I had to do in this case.
At any rate, I’ve tried to simplify as much as possible from this point. I’m now using the “git” user ID, and connecting to a local Subversion repository on the same machine (‘cetus’) to eliminate network and user ID issues as a potential problem, though I am still using an svn+ssh:// URL. The ‘git’ user ID has the unix group assignment of the repository, and can do checkouts via the same URL and private key which I’ve put in a directory /var/opt/gitlab/git-data/id. The resulting behavior is unchanged even in this simplified case. I can SSH (now, to the same machine), I can use svn on the command line to check out and commit using the private key, but SubGit fails as before. I think we have a good setup now, to further troubleshoot the problem, probably something in my SubGit configuration.
I tried using SVNKit, and I hope the results aren’t an unrelated mystery – it doesn’t work.
The ‘git’ user doesn’t really have a normal home directory on the system (it’s /var/opt/gitlab), so I checked out a Subversion repository into /tmp using the svn client. I then used the svn client to commit a small change, update, and then ‘svn log -l 1’. All this works.
I then tried using SVNKit as you provided, which I put in /opt/svnkit – I ran ‘/opt/svnkit/bin/jsvn log’ and I get repeated requests for connection details, followed by an error. On the first set of requests, I provide the key filename and the passphrase, and it appears to remember these on subsequent requests.
[git@cetus test_sams]$ /opt/svnkit/bin/jsvn log -l 3
Authentication realm: svn+ssh://cetus
Username: git
Password for 'cetus' (leave blank if you are going to use private key):
Private key for 'cetus' (OpenSSH format) (leave blank to use a SSH agent): /var/opt/gitlab/git-data/id/gitmirror
Private key passphrase [none]:
Port number for 'cetus' [22]:
Authentication realm: svn+ssh://cetus
Username [git]:
Password for 'cetus' (leave blank if you are going to use private key):
Private key for 'cetus' (OpenSSH format) [/var/opt/gitlab/git-data/id/gitmirror]:
Private key passphrase [***********]:
Port number for 'cetus' [22]:
Authentication realm: svn+ssh://cetus
Username [git]:
Password for 'cetus' (leave blank if you are going to use private key):
Private key for 'cetus' (OpenSSH format) [/var/opt/gitlab/git-data/id/gitmirror]:
Private key passphrase [***********]:
Port number for 'cetus' [22]:
svn: E200015: Authentication cancelled
[git@cetus test_sams]$
During this process, I get no messages in the syslog indicating an attempt to connect. When I run the same command with the normal client (‘svn log -l 3’) I’m asked for the private key password, and then I see the expected series of syslog messages from systemd and sshd, and I get the Subversion log messages I requested.
I’m attaching the subgit configuration file, /var/opt/gitlab/git-data/repositories/@hashed/e7/f6/e7f6c011776e8db7cd330b54174fd76f7d0216b612387a5ffcfb81e6f0919683.git/subgit/config
It’s modified as little as possible from what was produced by the configure step.
config (10.2 KB)