sftp服务器的部署

实现的功能:

三个用户,其中一个管理员用户和两个普通用户;管理员用户可以对普通用户的的家目录拥有写的

权限,普通用户对自己的家目录只有读的权限;而且进入服务器之后直接进入到自己的家目录下,无法进入到其他普通用户的家目录下。

新建普通用户组和管理员用户组

groupadd sftpadmin

groupadd sftp

创建普通用户和管理员用户

useradd -g sftp -s /bin/false user1

useradd -g sftp -s /bin/false user2

useradd -g sftpadmin -s /bin/falsesftpadmin

创建密码:

passwd user1    mV4!zDieCDgYG6n

passwd user2

passwd sftpadmin

创建对应用户的根目录。

mkdir -pv /data/sftp/{user1,user2}/share

指定用户的根目录

usermod -d /data/sftp/ sftpadmin

usermod -d /data/sftp/user1/ user1

usermod -d /data/sftp/user2/ user2

修改配置文件:

vim /etc/ssh/sshd_config

#Subsystem sftp /usr/libexec/openssh/sftp-server(注释此行)

添加以下内容

Subsystem sftp internal-sftp     #这行指定使用sftp服务使用系统自带的internal-sftp

Match Group sftp

ChrootDirectory /data/sftp/%u

ForceCommand internal-sftp

AllowTcpForwarding no

X11Forwarding no

Match user sftpadmin

ChrootDirectory /data/sftp

ForceCommand internal-sftp

设置目录的权限:

chown root:sftp /data/sftp/{user1,user2}

chmod 755 /data/sftp/{user1,user2}

chown root:sftpadmin /data/sftp/

chmod 755 /data/sftp/

chown sftpadmin:sftp /data/sftp/{user1,user2}/share/

chmod 750 /data/sftp/{user1,user2}/share/

重启服务:

service sshd restart 

systemctl restart sshd

新建了一个sftp的管理员账号:sftpadmin密码:12345

两个普通用户:user1  user2  密码都是12345

sftpadmin他的根目录是/data/sftp/

user1的根目录/data/sftp/user1/share

user2的根目录/data/sftp/user2/share

以管理员的身份登录会看到两个普通用户的目录,管理员对其目录有写的权限

如下:

sftp sftpadmin@127.0.0.1

sftp> ls

user1 user2

管理员需要将文件写到普通用户的share目录下。

普通用户登录的话可以直接 就会进入到本用户的家目录

sftpuser1@127.0.0.1

Connected to 127.0.0.1.

sftp> ls

share 

sftp>

指定端口连接:sftp -oport=58822sftpadmin@127.0.0.1


错误总结:

#此命令可以查看sshd的配置文件里有错的。

/usr/sbin/sshd -T

2、sftp连接时特别慢,而且警告:reverse mapping checking getaddrinfo for bogon [10.91.0.227] failed- POSSIBLE BREAK-IN ATTEMPT!

可能原因:在sftp服务器上找到配置文件/etc/ssh/sshd_config,将GSSAPIAuthentication

yes 改为GSSAPIAuthentication no

该问题是由dns解析导致,在客户端的配置文件/etc/ssh/ssh_config中查看是否有UseDNS no,如果有,注释掉该行

3. 另外需要注意的是:ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。注意以下两点原则:

目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。

目录开始一直往上到系统根目录为止都不可以具有群组写入权限

 sftp> get /var/index.php  /home/libai/

这条语句将从远程主机的  /var目录下将 index.php 下载到本地  /home/libai/目录下。

     sftp> put/home/libai/downloads/linuxgl.pdf  /var/

   这条语句将把本地 /home/libai/downloads/目录下的 linuxgl.pdf文件上传至远程主机/var 目录下。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启...
    执笔梦一场阅读 3,323评论 2 10
  • 共识免疫评分应用于结肠癌分类的国际化验证——一项预测和准确性的研究 International validatio...
    克里克的钟阅读 6,948评论 0 10
  • 2018-12-20 姓名:张正强 公司:江阴嘉鸿橡塑科技有限公司 【日精进打卡第️️64天】 【知~学习】 《六...
    张正强阅读 224评论 0 0
  • 一颗流星划过天边, 那瞬间, 我仿若看到三年前你眼中的那一缕留恋。 山青水远, 路遥遥, 我追你的感觉像是爱上了新...
    伦小让阅读 329评论 4 3
  • 这几天在听老师的植物的节奏,其实有点儿奇怪,为什么会有这样的内容分享。而且听起来很晦涩,静不下心来,断断续续的听,...
    葱伴侣阅读 152评论 0 0