可以按照如下方式进行设置:
1、创建sftp组,groupadd sftp,创建完成之后使用cat /etc/group命令组的信息。
2、创建一个sftp用户mysftp并加入到创建的sftp组中,同时修改mysftp用户的密码,useradd -g sftp -s /bin/false mysftp,passwd mysftp 。
3、新建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录,mkdir -p /data/sftp/mysftp,usermod -d /data/sftp/mysftp mysftp。
4、编辑配置文件/etc/ssh/sshd_config,vi /etc/ssh/sshd_config,将如下这行用#符号注释掉。
5、设置Chroot目录权限,chown root:sftp /data/sftp/mysftp,chmod 755 /data/sftp/mys。
6、新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限,mkdir /data/sftp/mysftp/upload,chown mysftp:sftp /data/sftp/mysftp/upload,chmod 755 /data/sftp/mysftp/upload。
7、关闭selinux并重启sshd服务,然后测试。
8、在其他服务器上进行验证,sftp 用户名@ip地址。
拓展资料1、sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。
2、其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
如果你访问过较新版本的Mac OS X中的“共享首选项”面板,则可能已经注意到不再允许FTP服务器共享文件和文件夹的直接选项。至少没有一个明显的选择,但FTP和SFTP服务器功能仍然存在,这两个刚分裂成不同的功能,新版本的OS X喜欢SFTP而不是FTP。无论你想要使用什么,为其中任何一个设置服务器都非常简单,下面将介绍如何在OS X中启动FTP或SFTP服务器。 这将启动Mac上的通用FTP和FTPS服务器,但不是SFTP服务器: 如果你看到熟悉的FTP登录: 那么说明服务器正在运行。如果你没有看到,那么服务器还没有完成启动,或者你没有正确输入命令。然后,你可以通过相同的ftp命令,或使用Finder中的“连接到服务器”选项进行FTP。 正如你可能知道的那样,FTP是未加密的,因此出于安全考虑而失宠。现在在Mac上启用SFTP实际上比FTP更容易: 你可以通过在命令行输入以下内容来验证SFTP是否正常工作: 注意: FTP和SFTP服务器是不同的,启用一个不启用另一个。建议使用SFTP,因为默认加密层和安全传输。 以下是如何禁用FTP服务器的方法: 如命令所示,这将卸载ftp守护进程并关闭服务器。你只能关闭和禁用FTP服务器。而禁用SFTP只是取消选中位于OS X的“共享首选项”面板中的“远程登录”框。一般情况下,从安全考虑,root是禁止ssh登录,普通用户通过sudo操作,一般都没问题,但是要通过ftp传输文件就麻烦了,文件是属于root用户的,普通用户即使等登录也不能更改文件,也要加上sudo命令才能更改文件,通过winscp软件可以实现实现这个功能,详细配置查看这个帖子:
http://blog.csdn.net/xuejinliang/article/details/52301349
配置图1(http://upload-images.jianshu.io/upload_images/3727878-911d343f96035822.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
配置-高级-SFTP sudo /usr/libexec/openssh/sftp-server
配置图2(http://upload-images.jianshu.io/upload_images/3727878-52fa5c95dcc9d859.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
配置-高级-Shell sudo -i
附加背景知识:
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/File_Transfer_with_SFTP
在主流linux系统版本当中,默认都有安装openssl和openssh包,都有ssh命令,也就是说默认安装好了SFTP服务器和sftp命令,不需要额外配置vsftp。
sftp有两种实现
1.sftp-server默认实现
2.internal-sftp可更改用户对应的目录
本来考虑不用sudo,而是通过internal-sftp来实现,把普通用户加入到root用户组,把文件的root用户组权限加上写的权限来实现的,后来发现没用,
因为目录权限设置要遵循2点:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。
如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)