我正在使用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上使用TortoiseSVN)
svn+ssh://<user>@example.com/<repo>
它要求我input密码。
我已经用我的服务器上的现有用户<用户>和不存在的用户<用户>尝试了这一点。 两者都行不通。
我该怎么做才能使它工作? 我错过了什么?
编辑:Okeyyy,新的信息!
我现在已经设置了权限。 猜猜是什么.. svn可以login! <user>不能。
但是,将用户<user>添加到操作系统并添加主目录并将auth文件复制到他的目录WORKS。 现在<user>也可以login。
这不是我想要的。 是否可以只使用一个文件,并使用操作系统中不存在的用户?
我会尝试的第一件事是正确设置目录/文件的权限
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
然后尝试login。
如果这不起作用,请将ssh -v svn@blah内容以及/var/log/messages /var/log/secure /var/log/auth.log或sshd中的所有内容
成功login的示例
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)
不成功的login示例
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
validationssh -v中显示的密钥是您尝试使用的密钥,并显示它已成功处理并发送到服务器