Linux系统创建sftp账户传输文件,需要sftp帐号不能登录系统,并且锁定家目录。

1. 创建用户

useradd -d /home/sftp_test -s /sbin/nologin sftp_test

首先创建一个不能登录的并且指定了家目录的帐号。

2.配置用户密码

echo "centos" | passwd --stdin sftp_test

修改用户的密码

3.配置ssh服务

vi /etc/ssh/sshd_config

再修改ssh服务的配置文件。
修改ssh配置文件
首先修改这两项,PermitRootLogin是允许其它机器连接到这台机器的root账户进行远程连接(sftp、ssh等),MaxSessions是修改最大连接数。

修改ssh配置2
修改Subsystem sftp的模式为internal-sftp。并且做目录访问限制,限制只能在自己的家目录操作。不能访问其他目录。ChrootDirectory目录问用户家目录的上级目录并且权限为root所用。
访问限制如下图:
访问限制示例

/etc/ssh/sshd_config配置文件
将sftp的模式改为internal-stp。如果不改,可以会报错:
sftp连接报错:Received message too long 1416128883
sftp报错示例
sftp连接报错:packet_write_wait: Connection to 192.168.88.133 port 22: Broken pipe
Couldn’t read packet: Connection reset by peer
这是因为ChrootDirectory设置在了自己的目录。应该是指在上级目录。
sftp报错2
配置错误示例

操作系统:suse10sp264bitfly007用户的SHELL为:csh1、同事反映,使用sftp登入服务器时,报Receivedmessagetoolong1114795883错误:fly007.example.com:~ # sftp fly007@192.168.1.90 Connecting to 192.168.1.90.....
部件相关人员反映,使用sftp登入服务器时,报如下错误: station90.example.com:~ # sftp dota@192.168.15.90 Connecting to 192.168.15.90... Password: Received message too long 1114795883 1、因只有dota用户存在这个问题,故怀疑是dota用户的环境设置问题,su
vim /etc/ssh/sshd_config 注释 Subsystem sftp /usr/libexec/openssh/sftp-server否则重启sshd服务会报错: 添加... 创建test用户,将test用户的shell设置为/sbin/nologin禁止ssh登陆,且不创建用户家目录 useradd -g sftpusers -s /sbin/nologin -M test 设置用户密码 passwd test 2 编辑 /etc/ssh/sshd_... 在一些生产环境中,有时,用户需要传数据到服务器,但是配置 ftp 服务比较麻烦,此时,我们可以为用户创建 sftp 账户,让用户使用 sftp 来上传下载所需的数据。sftp 账号即为系统账号,将账户密码给用户,用户除了能登录 sftp 上传下载数据外,还可以访问系统中的其他目录,由此,给我们的系统带来了安全隐患,我们需要把 sftp 用户限制在特定的目录中。 2.1、创建用户...
提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下: 1.创建用户YSsftp,禁止ssh登录 useradd -s /sbin/nologin YSsftp 2.设置用户密码 passwd YSsftp 3.创建用户的根目录 mkdir /home/sftpFile 4.设置权限 设置目录权限,目录...
       在一些生产环境中,有时,用户需要传数据到服务器,但是配置ftp服务比较麻烦,此时,我们可以为用户创建sftp账户,让用户使用sftp来上传下载所需的数据。Sftp账号即为系统账号,将账户密码给用户,用户除了能登录sftp上传下载数据外,还可以访问系统中的其他目录,由此,给我们的系统带来了安全隐患,再次,我们需要配置用户只能通过sftp登录系统下载上传所需的数据。 1、创建sftp用...
创建一个sftp用户mysftp并加入到创建sftp组中,同时修改mysftp用户的密码 useradd -g sftp -s /bin/false mysftp passwd mysftp 新建/data/sftp/mysftp目录, Step 2 在root用户根目录下执行以下命令设置各目录权限。 chown -R root:root /chroot /chroot/home /chroot/home/user chmod 755 /chroot /...
最近,在公司托管的服务器经销商那边看到过通过账号可以限定账户只允许访问指定的目录,于是乎,自己也做了测试在这里和大家总结一下: 首先创建一个目录用于作为你被访问的目录, mkdir /data/myweb 然后创建用户, useradd -d ...
最近搞一个sftp项目,用于给第三方公司上传文件,期间查询了很多种方式,依然无法限制目录,很苦恼,本次经过无数次试验,终于成功了。 提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下: 下面是千篇一律的步骤,网上大抵相同。 1、创建用户 sftpuser,并禁止ssh登录,不创建目录        useradd
之前我服务器是使用的Windows Server 2003,这段时间由于访问量变大我还是机智的换成Linux了,在搭建FTP的时候看到网上都是推荐vsftpd,不过我不推荐这个家伙,看官且看下文。 我推荐使用SSH自带的SFTPSFTP是Secure File Transfer Prot...