centos6和ubuntu14搭建sftp
参考 http://blog.csdn.net/xinxin19881112/article/details/46831311
一. 在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器。
打开命令终端窗口,按以下步骤操作。
0、查看openssh的版本
ssh -V #使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级
1、创建sftp组
groupadd sftp
2、创建一个sftp用户,用户名为mysftp,密码为mysftp
useradd -g sftp -s /bin/false mysftp //用户名
passwd mysftp //密码,修改用户密码和修改Linux用户密码是一样的。
3、sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/data/sftp/mysftp
mkdir -p /data/sftp/mysftp usermod -d /data/sftp/mysftp mysftp #这一步不做也可以,ssh配置文件中设置根目录后会覆盖这里的设置
4、配置sshd_config
vim /etc/ssh/sshd_config 找到并注释掉下面一行,大致在文件末尾处。
# Subsystem sftp /usr/libexec/openssh/sftp-server 在文件最后面添加如下几行内容,然后保存。 Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u # %u代表用户名,等价/data/sftp/mysftp
ForceCommand internal-sftp #指定sftp命令
AllowTcpForwarding no #下面两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
X11Forwarding no
5、设定Chroot目录权限
chown root:sftp /data/sftp/mysftp chmod /data/sftp/mysftp
6、建立SFTP用户登入后可写入的目录
照上面设置后,在重启sshd服务后,用户mysftp已经可以登录。
但使用chroot指定根目录后,根应该是无法上传文件的,但是可以下载。
所以要新建一个目录供mysftp上传文件,这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限。命令如下:
mkdir /data/sftp/mysftp/upload chown mysftp:sftp /data/sftp/mysftp/upload chmod /data/sftp/mysftp/upload
7、修改/etc/selinux/config
vim /etc/selinux/config 将文件中的SELINUX=enforcing 修改为 SELINUX=disabled ,然后保存。 输入命令setenforce #即时生效
8、重启sshd服务
service sshd restart
9、验证sftp环境
用mysftp用户名登录,yes确定,回车输入密码。
sftp mysftp@127.0.0.1
显示 sftp> 则sftp搭建成功。
10、使用FileZilla FTP Client连接SFTP服务器
输入主机IP地址、用户名、密码、端口连接SFTP服务器,端口默认为22。
FileZilla FTP Client下载
http://download.csdn.net/detail/xinxin19881112/8887755
此方法也可用在ubuntu系统上,在下面的ubuntu中介绍了另外一种方法。
二. 在ubuntu上搭建sftp
需求说明:
1,如果还没有安装OpenSSH服务器,先安装它
sudo apt-get install openssh-server
2. 为SFTP访问创建用户组,便于管理权限
sudo addgroup sftp-users
3,创建SFTP用户,并配置相应权限
sudo adduser alice
sudo usermod -G sftp-users -s /bin/false alice #将alice从所有其他用户组中移除并加入到sftp-users组,并且关闭其Shell访问
4,创建SSH用户组,并把管理员加入到该组(注意usermod中的-a参数的意思是不从其他用户组用移除)
sudo addgroup ssh-users
sudo usermod -a -G ssh-users admin
5,准备“监狱”的根目录及共享目录
sudo mkdir /home/sftp_root #这里用sudo,相当于 /home/sftp_root所属为root:root,权限默认为755
sudo mkdir /home/sftp_root/shared
sudo chown admin:sftp-users /home/sftp_root/shared
sudo chmod /home/sftp_root/shared
注意:第4,5步的admin用户可以改为任意其他用户,包括root用户
6,修改SSH配置文件
sudo vim /etc/ssh/sshd_config
在sshd_config文件的最后,添加以下内容:
AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
7,重启系统以便使新配置生效
sudo reboot now
注意:
1)组sftp-users是允许使用sftp的用户组; ssh-users是允许进行ssh连接的用户组,
2)因为我们设置了usermod -a -G ssh-users admin,因此现在只能admin用户远程ssh连接,
3)如果想让之前的普通用户远程连接ssh,比如axinfu用户,需要把它加入ssh-users组中,usermod -aG ssh-users axinfu
4)从一个组中删除成员,命令是gpasswd wheel -d test,表示从wheel组成删除成员test
centos6和ubuntu14搭建sftp的更多相关文章
- 搭建sftp服务+nginx代理
在公司,经常会用到sftp服务,比如两个公司对接生产项目,其中一方,要在sftp上上传pdf文件,另一方公司要在sftp服务器上用nginx代理直接下载pdf文件.下面就说说我在实际中应用到的sftp ...
- Linux Centos 6.6搭建SFTP服务器
Linux Centos 6.6搭建SFTP服务器 在Centos 6.6环境使用系统自带的internal-sftp搭建SFTP服务器. 打开命令终端窗口,按以下步骤操作. 0.查看openssh的 ...
- Linux - CentOS6.5服务器搭建与初始化配置详解(下)
传送带:Linux - CentOS6.5服务器搭建与初始化配置详解(上) 继续接着上面的安装,安装完后会出现下面界面 点击reboot重启 重启后可以看到下面的tty终端界面 因为这就是最小化安装 ...
- CENTOS6.6上搭建单实例ORACLE12C
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 自己在centos6.6上搭建的单实例oracle12c 由 ...
- freeSSHD在windows环境下搭建SFTP服务器
freeSSHD在windows环境下搭建SFTP服务器 0 建议现在windows环境下安装cygwin,否则在windows环境下cmd模式使用不了sftp去连接,可以利用win scp去测试连接 ...
- CentOS7.5 下搭建SFTP
CentOS7.5 下搭建SFTP Linux 创建用户组 groupadd sftp 创建用户test useradd -G sftp -s /sbin/nologin test -s 禁止用户ss ...
- Linux学习之CentOS(一)--CentOS6.4环境搭建
Linux学习之CentOS(一)--CentOS6.4环境搭建http://www.cnblogs.com/xiaoluo501395377/archive/2013/03/31/CentOs.ht ...
- Centos6.8下搭建SVN服务器
1.Centos6.8下搭建SVN服务器 Subversion是一个自由,开源的版本控制系统.Subversion将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一 ...
- 搭建SFTP服务器,允许一个或多个用户拥有一个或多个目录的rwx权限
1.引言 sftp可以为传输文件提供一种安全的网络的加密方法.sftp 与 ftp 有着几乎一样的语法和功能.SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式.其实 ...
随机推荐
- Swiper thymeleaf
html页面: <div class="swiper-container swiper_tjzt"> <div class="swiper-wrappe ...
- 小程序本地资源无法通过 css 获取
background-image:可以使用网络图片,或者 base64,或者使用<image/>标签
- Opencv Match Template(轮廓匹配)
#include <iostream>#include <opencv2/opencv.hpp> using namespace std;using namespace cv; ...
- 673. Number of Longest Increasing Subsequence最长递增子序列的数量
[抄题]: Given an unsorted array of integers, find the number of longest increasing subsequence. Exampl ...
- rman恢复增加ADG(级联ADG)
当前已经有一套ADG库,分别是prod1和prod1s计划从pord的ADG备库(prod1s)拷贝一个0级rman全备到新的服务器,恢复后,搭建成新增的ADG,SID叫prod2s,后面激活当做测试 ...
- 技术串讲 CAS 有用
CAS,全称为Compare and Swap,即比较-替换.假设有三个操作数:内存值V.旧的预期值A.要修改的值B,当且仅当预期值A和内存值V相同时,才会将内存值修改为B并返回true,否则什么都不 ...
- TF录像存储专项测试
测试环境 移动设备:小米4C 移动设备版本:Android 5.1 IPC版本号:0.1.4110_10.1.1.1.3948 安居小宝版本:Version:2.0.1 测试网络:IPC使用WIFI网 ...
- itunes win10应用商店安装 升级固件路径
win + r 在运行中输入: %localappdata%\Packages\AppleInc.iTunes_nzyj5cx40ttqa\LocalCache\Roaming\Apple Compu ...
- JAVA中简单的MD5加密类(MD5Utils)
MD5加密分析: JDK API: 获取对象的API: 加密的API: package cn.utils; import java.security.MessageDigest; im ...
- Swift语法快速索引
在WWDC的演示中就可以看出来Swift这个更接近于脚本的语言可以用更少的代码量完成和OC同样的功能.但是对于像我一样在战争中学习战争的同学们来说,天天抱着笨Swift Programming Lan ...