Archive for the 'FreeBSD' Category
FreeBSD 5.4使用公钥进行SSH登录
把系统调整到5.4,ssh的公钥登录始终有问题,SecureCRT生成的公钥传上去,无 效,用ssh-keygen生成的密钥对用SecureCRT也没法使用,后来google到一篇文章 说密钥格式不兼容导致,但是如何处理这种不兼容的密钥文件,却没了下文。 归根结底SecureCRT使用的是SSH2格式的公钥,而OpenSSH是使用的OpenSSH格式的 公钥。 ssh-keygen -i -f pub_keyfile 的 -i -f 选项可以把SSH2兼容格式的未加密公 钥,转换为OpenSSH兼容格式。 ssh-keygen -e -f pub_keyfile 则可以把OpenSSH格式的公钥转换为SSH2格式的。
1、修改/etc/ssh/sshd_config,设置 PubkeyAuthentication yes; AuthorizedKeysFile .ssh/authorized_keys
然后执行/etc/rc.d/sshd reload使设置生效
2、在自己的电脑上使用SecureCRT的Create Identity File按钮为自己创建一个密 钥对。假设分别保存为my_dsa_key和my_dsa_key.pub,后一个为公钥。
3、不管用什么办法,将my_dsa_key.pub上传到FreeBSD的用户目录的.ssh目录下。
4、在服务器上执行ssh-keygen -i -f my_dsa_key.pub > authorized_keys,生成 了一个新文件authorized_keys
5、在SecureCRT里面设置登录模式为PublicKey,并选择私钥作为identity file。
6、可以自动登录了。
其实上面的步骤是使用SecureCRT生成的密钥对来进行登录验证的,也可以使用ssh -keygen生成的密钥对来验证,只是生成密钥对之后,必须将格式转换成SecureCRT 使用的SSH2格式的!
fastCGI方式跑Django
原本想找个支持mod_python的空间来玩玩,但是要么太贵要么速度太慢,终究还是选择了dreamhost,在他上面买了支持python的空间,打算好好玩玩python这个东东,之前看了看上面的环境:
- hackgou@runts:~$whereis python
- python: /usr/bin/python /usr/bin/python2.3 /usr/bin/python2.2-popy-config \
- /usr/bin/python2.2 /usr/bin/python2.4 /etc/python2.3 /etc\
- /python2.4 /etc/python2.2 /usr/lib/python2.3 /usr/lib/python2.2 \
- /usr/lib/python2.4 /usr/local/lib/python2.3 /usr/local/lib/python2.\
- 2 /usr/local/lib/python2.4 /usr/include/python2.3 /usr/include/python2.2 \
- /usr/include/python2.4 /usr/share/man/man1/python.1.gz
呵呵,够夸张的,从2.2到2.4的版本都有。
还好!fastCGI的支持是知道的,上面的主机对python和perl的支持都是通过FastCGI的方式实现的。以前没有彻底的玩过FastCGI、更别说python的FastCGI了。首先是添加一个Python的FastCGI gateway。虽然dreamhost的wiki上面说使用fcgi.py比较方便,但是后来发现Flup,这也是一个Frame
不光有fastCGI gateway,而且他提供一个类似mod_python的publish的东东,那就用他了:
- wget http://www.saddi.com/software/flup/dist/flup-r1968.tar.gz
wget抓来之后。用setup.py安装。/usr/lib/python2.4 咱是没有权限,那就在~/下面建立一个自己的lib-python,作为自己的$PYTHONPATH。
在.bash_prifile里面添加export $PYTHONPATH=$PYTHONPATH:~/lib-python
OK,开始安装我们自己的lib:
- python2.4 setup.py install --install-lib ~/lib-python/ --install-scripts ~/lib-python/
这样会安装到我自己的lib-python而不是默认的/usr/lib/python2.4/site-packages/。
OK,写个简单的helloworld.py(flup的fcig路径是from flup.server.fcgi import WSGIServer),测试一下flup。OK。通过
然后svn把django的代码也拉到lib-python中去。再按照django的手册创建一个demo,写一个简单的测试app.py。页面是出来了,但是是django报错的东东。还好,聊胜于无。为什么呢?东翻翻、西翻翻,看到木头的文章,他说rewrite后能够成功,但是我还悄悄的去http://www.djangocn.org/django.fcgi看了看,呵呵和我的错误一样。不可能跟这个rewrite有关系的吧,既然如此,那我就添加重写规则吧,一添加,呵呵,果然奏效。
It worked!
页面出来了,不知道为什么rewrite和这个有啥关系,迷糊
update:
如果希望避免export $PYTHONPATH=$PYTHONPATH:~/lib-python 而且也不想添加一堆的path.append(),可以参考:
让easy_install构造自己的py thon小天地
