Linux 如何配置 SFTP 来代替单一ftp应用

SFTP在Linux下是一个很方便很安全的文件传输工具,我常常用它在Linux服务器上替代传统的ftp来传输文件。众所周知SFTP账号是基于SSH账号的,默认情况下访问服务器的权限很大,下面的教程就是教你像ftp那样限制SFTP账号相关的访问权限。

必要条件:

你的openssh-server版本至少得失4.8p1, 因为配置权限需要版本添加的新配置项ChrootDirectory来完成。

如何查看自己服务器上的ssh版本?尝试以下命令

$ ssh -V

具体实施步骤

1. 我们需要创建一个用户组,专门用于sftp用户

$ groupadd sftpusers

2. 我们创建一个用户test

$ useradd -s /bin/false -G sftpuser test

注意这里我们将test用户的shell设置为/bin/false使他没有登陆shell的权限

3. 编辑 /etc/ssh/sshd_config

找到Subsystem这个配置项,将其修改为

Subsystem  sftp  internal-sftp

然后再到文件最尾处增加配置设定属于用户组sftpusers的用户都只能访问他们自己的home文件夹

Match Group sftpusers

ChrootDirectory %h

ForceCommand internal-sftp

AllowTcpForwarding no

保存并关闭文件

4. 修改test用户home文件夹的权限,让其属于root用户

chown root ~test

5. 重启sshd服务

$ service sshd restart

6. 测试用户账号

$ ssh [email protected]

连接会被拒绝或者无法登陆

$ sftp [email protected]

登陆后你会发现你的账号无法切换到除自己home目录之外的地方的

常见问题:

如果你链接服务器的时候出现下面的提示:

Write failed: Broken pipe

Couldn‘t read packet: Connection reset by peer

这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755

Linux 如何配置 SFTP 来代替单一ftp应用,布布扣,bubuko.com

时间: 2024-10-06 00:43:02

Linux 如何配置 SFTP 来代替单一ftp应用的相关文章

在 Linux 中配置 SFTP 环境

做运维的朋友,应该经常会碰到这样的问题,研发需要新上一个web项目,需要上传文件到服务器上,并且仅仅是上传项目,解决方法一边有两种,sftp和ftp,今天讲如何使用sftp让系统用户用户上传项目的权限,并且实现chroot和无法使用ssh登录到系统: SFTP是指SSH文件传输协议(SSH File Transfer protocol)或安全文件传输协议(Secure File Transfer Protocol),它提供了可信数据流下的文件访问.文件传输以及文件管理功能.当我们为SFTP配置c

Linux下配置SFTP服务器

最近在做一个微信支付水电费的项目,是与兴业银行合作的项目,按照银行的要求要配置一个SFTP服务器,上传每天缴费的对账单到SFTP服务器里面,经过一段时间的摸索,终于配置成功了,跟大家分享一下,配置过程如下: 0.查看openssh的版本 1. ssh -V 使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级. 1.创建sftp组 1. groupadd sftp 2.创建一个sftp用户,用户名为mysftp,密码为mysftp 修改用户密码和修改L

linux配置sftp用户的chroot步骤(用户的sftp根目录)

1.编辑ssh中的sftp的配置,命令可能是:vi /etc/ssh/sshd_config 在这个文件中最后加入 #限制sftp组的用户使用sftp时在自己的home目录下 Match Group sftp #这里写重写根目录成登录用户的根目录下 ChrootDirectory %h #这行指定使用sftp服务使用系统自带的internal-sftp ForceCommand    internal-sftp 2 重启ssh服务,命令可能是:service ssh restart, 这里要注意

[转] Linux学习之CentOS(三十六)--FTP服务原理及vsfptd的安装、配置

本篇随笔将讲解FTP服务的原理以及vsfptd这个最常用的FTP服务程序的安装与配置... 一.FTP服务原理 FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文件传输协议,FTP协议是现今使用最为广泛的网络文件共享协议之一,我们现在也一直有在用着FTP协议来进行各种文件的传输,FTP为我们提供了一种可靠的方式在网络上进行文件的共享 FTP是C/S架构的服务,拥有一个服务器端和一个客户端,FTP底层通过TCP协议来作为传输协议,所以FTP协议是一种可靠的文件

Linux安装配置ftp服务器

(1)安装vsftp: [[email protected] ~]$ sudo yum install vsftpd #sudo 给普通用户添加root权限,用root用户登录不用使用sudo (2)完成安装,配置vsftp: vsftp的配置文件在:/etc/vsftpd/目录下: vsftpd.conf              //vsftp的配置文件 user_list.ftpusers             //禁止登录vsftp的用户名单 [[email protected] vs

Linux中配置ftp传输

ftp的配置及使用 1.安装ftp:yum install -y vsftpd 出现如图所示,则表示安装成功 2.关闭防火墙:service iptables stop 3.创建一个用户用于ftp传输(或者用已存在的) adduser hxc 4.设置密码 passwd hxcftp  (再输入两遍密码) 5.切换到ftp的配置目录:cd /etc/vsftpd/ 6.编辑该目录下的文件user_list : vim user_list 7.编辑里面的内容,将需要的用户添加进该文件夹中,这里增加

linux下配置FTP Server

FTPServer RHEL5.1_A FTP Server(VM1) ---------  (VM1)RHEL5.1_B FTP Client 192.168.10.254                       C   真实机Win7 Client 实验一:搭建简单的FTP服务器 实验要求: 配置可匿名上传FTP服务 服务器的搭建 1.安装软件包 [[email protected] Server]#rpm -ivh vsftpd-2.0.5-28.el5.x86_64.rpm 或者用:

Ubuntu Server如何配置SFTP

SSH File Transfer Protocol是一个比普通FTP更为安全的文件传输协议.(参考资料:http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol)它工作在Secure Shell(SSH)上,确保文件被加密传输. 因为工作需要,我研究了一下如何在Ubuntu Server上配置SFTP,记录如下. 需求:在服务器上开通SFTP文件服务,允许某些用户上传及下载文件.但是这些用户只能使用SFTP传输文件,不能使用SSH终端访问服

如何在Linux中使用sFTP上传或下载文件与文件夹

如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作.在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件). 作者:Aaron Kili来源:Linux中国|2017-03-09 14:42 移动端 收藏 分享 51CTO诚邀您9月23号和秒拍/国美/美团元专家一起聊智能CDN的优化之路