1、首先用ssh -v 查询主机是否安装了openssh,如果查看不到版本号,则表示需要安装openssh,具体命令如下
yum install -y openssl openssh-server
yum install openssh*
systemctl enable sshd
systemctl start sshd
service sshd start
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
再执行版本号查看命令:ssh -V (大写)
2.创建sftp组,创建一个sftp用户,用户名为mysftp,密码为*******
[root@ linuxidc.com ~]# groupadd sftp
[root@ linuxidc.com ~]# useradd -g sftp -s /bin/false mysftp
[root@ linuxidc.com ~]# passwd mysftp
3.sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分
这里先新建一个mysftp目录,然后指定mysftp的home为/var/ftp/pub/ usermod 命令修改系统帐户文件来反映通过命令行指定的变化
[root@ linuxidc.com ~]# mkdir -p /var/ftp/pub/
[root@ linuxidc.com ~]# usermod -d /var/ftp/pub/ mysftp
4.编辑/etc/ssh/sshd_config
[root@ linuxidc.com ~]# vim /etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server #这一行注释掉
Subsystem sftp internal-sftp #加上下面六个个配置属性
Match Group sftp
ChrootDirectory /var/ftp/pub/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
5.更改文件夹拥有者及文件夹权限
[root@ linuxidc.com ~]chown root:sftp /var/ftp/pub/
[root@ linuxidc.com ~]chmod 755 /var/ftp/pub/
6.建立sftp用户登录后可写入的目录
[root@ linuxidc.com ~]mkdir /var/ftp/pub/topologydiagram
[root@ linuxidc.com ~]chown mysftp:sftp /var/ftp/pub/topologydiagram
[root@ linuxidc.com ~]chmod 755 /var/ftp/pub/topologydiagram
7.将文件/etc/selinux/config中的SELINUX=enforcing修改为SELINUX=disabled,然后保存
输入service sshd restart重启服务
8.用mysftp用户名登录,显示 sftp> 则表示搭建成功
注:如果出现连接失败或者是网络错误:
我们知道SFTP走的是SSH的端口,服务器端运行sshd的服务,通过使用SSH,可以把所有传输的数据进行加密。所以,我们需要检查一下sshd相关的配置。所以我们试试查看一下配置文件/etc/ssh/sshd_config
#override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
改为
# override default of no subsystems
Subsystem sftp internal-sftp
并且注释掉上面加的六个配置
重启
[root@14 ~]# service sshd restart