Total Pageviews

Saturday, 27 October 2012

authorized_keys文件中的command选项


通常我们只是将authorized_keys当作公钥文件来用,其实这个文件还有更丰富的功能。
通过sshd的手册,可以查到关于authorized_keys文件的格式介绍,远不止“ssh-dss AAAA* buser@urdomain.com”这样简单,比如功能强大的command配置项。
这个选项常用来让某个特定的公钥执行特定的任务。比如仅仅将某一个公钥用于执行备份任务。
举两个常见例子:
1. rsync
服务器端的key为:

command="rsync --server  --sender -vlogDtprCz . /mnt/one/" ssh-dss AAAAB3...sYBat4= user@deckard.example.com

这样,客户端就可以使用下面的命令,通过key认证来同步目录了:

rsync -e 'ssh -i pris -l deckardsync' -Cavz /home/user/two/ pris:/mnt/three

2.svnserve

在服务端增加:

command=”/usr/bin/svnserve -t -r /var/svn-repos/ –tunnel-user=svnuser”,no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding

客户端:

svn import web svn+ssh://192.168.1.10/topcity -m “initial import”

参考:
http://lamp.linux.gov.cn/OpenSSH/sshd.html#end
http://ramblings.narrabilis.com/wp/using-rsync-with-ssh/
http://hi.baidu.com/farmerluo/blog/item/9006a4c2a679380b0ff4776e.html