svn+ssh小记

因为lighttpd貌似不支持subversion,我就只好采用别的途径访问svn。

服务器不需要做什么配置修改也不需要单开多余的进程,但是客户端需要2个东西:

1、TortoiseSVN

2、cygwin并且装了ssh client

首先在服务器上看下,

/export/svn$ ls -lhad *
drwxrwsr-x 7 www-data subversion 4.0K 2010-10-29 00:16 misc

svnadmin在创建repos的时候,是采用组内可写(g+rw)的方式,组是subversion。

所以用root添加一个用户,名字可以随意,但是必须在subversion这个组里。

$ adduser --ingroup subversion svnuser

这样,这个用户就可以读写svn仓库里的文件了。

然后切换到svnuser这个用户下,用ssh-keygen生key
$ ssh-keygen -b 2048 -t rsa -f sshkey
$ cat sshkey.pub >> .ssh/authorized_keys

然后用chmod把ssh和authorized_keys的权限分别改成0700和0600。

然后把key复制到我的笔记本上。
然后从笔记本测试登陆
ssh -i sshkey svnuser@myhost.com
然后在服务器上修改authorized_keys在刚才那行key的前面加上

no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty,command="svnserve -t -r /export/svn/ --tunnel-user=sunchangming"

目的是为了防止用这个key获取shell或是做端口转发。再像刚才那样测试:

ssh -i sshkey svnuser@myhost.com

登陆就会失败

然后就是修改TortoiseSVN的配置告诉它去哪里找key

svn

然后最终就可以用这样的方式访问了 svn+ssh://svnuser@myhost/misc

缺点是执行svn操作的时候会有黑乎乎的窗口弹出来,我想用cygwin的run.exe去掉它,但是没有成功,貌似得改点东西。没有help,没有文档,名字起的实在是太普通了想google都难。这个故事教育我们,如果怕被人肉,那么最好把所有的网名都换成李刚(王伟也行)。

如果没有cygwin也可以用TortoisePlink.exe作为ssh客户端,但是我测试没有成功。TortoisePlink.exe是从putty改过来的,但是putty我很少用,所以不会搞。

如果要加用户,就是往authorized_keys里面加key即可。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥