2015-09-29

SSH 信任限制只能执行 rsync 命令

Views: 11095 | Add Comments

业务场景:

* server A 经常需要使用rsync将文件同步至 server B
* rsyncd 的配置稍显复杂,不想在 server B 上配置rsyncd
* 出于安全性的考虑,不能完全开放 server A 至 server B 的ssh权限

解决方案:

配置server B上的~/.ssh/authorized_keys, 允许server A使用ssh连接至server B, 但是限制只能使用rsync命令,并且限制rsync上传的目录

在server A上创建用于专门用于rsync验证的ssh密钥

ssh-keygen -C rsync_key -f ./rsync_key -P '' -N ''
#or
ssh-keygen -t rsa

在server B下载 rrsync 存放至 $HOME/bin/rrsync

在server B的~/.ssh/authorized_keys中加入以下内容,行尾的部分即是第一步生成的rsync_key.pub的内容:

command="$HOME/bin/rrsync /data/work/package/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAAA**content of rsync_key** rsync_key

在server A上可以通过下面的rsync命令把local_name上传至server B的/data/work/package/remote_name来传输文件:

rsync -av -e 'ssh -o StrictHostKeyChecking=no -i /path/to/rsync_key' local_name user@serverB:remote_name

参考链接:Restricting SSH Access to rsync

转自: http://oylb.in/blog/2015/09/01/restrict-rsync-with-authorized-keys/
原标题: 使用authorized_keys限制rsync

Related posts:

  1. Linux下编译安装Apache/Nginx/Lighttpd+PHP+MySQL
  2. lighttpd配置HTTPS(SSL)
  3. Nginx + PHP 配置和启动脚本
  4. Tomcat网站server.xml设置
  5. HBase 在 Linux 下安装和配置
Posted by ideawu at 2015-09-29 19:27:48

Leave a Comment