SVN+SSH 不起作用

SVN+SSH 不起作用

我使用的是 Debian 服务器。
我使用 SVN 的用户 svn。svn 的主目录是/home/svn。所有存储库都在 中/srv/svn
其中/home/svn/.ssh有一个文件authorized_keys。此文件包含以下行:

command="/usr/bin/svnserve -t -r /srv/svn/ --tunnel-user=<user>",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAA<...>NhQ== <user>

svn 拥有/srv/svn/srv/svn/<repo>
当我尝试使用给定的 ssh 密钥连接到服务器时,它可以工作,所以应该没有问题。但是当我尝试使用以下代码打开存储库时(我在 Windows 上使用带有 Pageant 的 TortoiseSVN)

svn+ssh://<user>@example.com/<repo>

它要求我输入密码。
我已尝试使用服务器上的现有用户 <user> 和不存在的用户 <user> 执行此操作。均无效。
我应该怎么做才能使其正常工作?我是否遗漏了什么?

编辑:好的,新信息!
我现在已经设置了权限。猜猜怎么着……svn 可以登录!<user> 不能。
但是将用户 <user> 添加到操作系统并添加主目录并将 auth 文件复制到他的目录中是可行的。现在 <user> 也可以登录了。
这不是我真正想要的。是否可以只使用一个文件并使用操作系统中不存在的用户?

答案1

我要尝试做的第一件事是正确设置目录/文件的权限

find /home/svn/.ssh -type d -exec chmod 700 {} \;
find /home/svn/.ssh -type f -exec chmod 600 {} \;
chown -R svn:svn /home/svn/.ssh

然后尝试登录。

如果这不起作用,请发布sshd 的内容或类似ssh -v svn@blah内容/var/log/messages /var/log/secure /var/log/auth.log

登录成功示例

Feb  1 08:49:59 localhost sshd[25316]: Accepted publickey for root from 127.0.0.1 port 34935 ssh2
Feb  1 08:49:59 localhost sshd[25316]: pam_unix(sshd:session): session opened for user root by (uid=0)

登录失败示例

Feb  1 08:54:09 localhost sshd[25478]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost  user=root
Feb  1 08:54:11 localhost sshd[25476]: error: PAM: Authentication failure for root from localhost

ssh -v显示关键故障

debug1: Next authentication method: publickey
debug1: Trying private key: .ssh/blah.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,keyboard-interactive

验证显示的密钥ssh -v是否是您尝试使用的密钥,并且表明该密钥已成功处理并发送到服务器

相关内容