一、物理机连接Linux
1、创建sftp组: groupadd sftp
创建用户sftpuser:useradd -g sftp -s /bin/false sftpuser
设置sftpuser用户的密码:passwd sftpuser
创建一个sftp的上传目录:mkdir /fang/sftpfiles
修改用户sftpuser所在的目录:usermod -d /fang/sftpfiles sftpuser
2、配置sshd_config:vi /etc/ssh/sshd_config
找到如下这行,并注释掉:
#Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下几行:
Subsystem sftp internal-sftp #这行指定使用sftp服务使用系统自带的internal-sftp Match User sftpuser #这行用来匹配用户 ChrootDirectory /datas/www #用chroot将用户的根目录指定到/datas/www ,这样用户就只能在/datas/www下活动 AllowTcpForwarding no ForceCommand internal-sftp #指定sftp命令
使用 internal-sftp 而不用默认的 sftp-server,是因为用户进行ChrootDirectory 的时候,将不请求任何文件,同时 sftp 不用另开一个进程。
3、设定Chroot目录权限:
chown -R root:root /datas/www chmod 755 /datas/www
4、建立SFTP用户登入后可写入的目录:
mkdir /datas/www/sftpuser chown -R sftpuser:sftp /datas/www/sftpuser/ chmod 755 /datas/www/sftpuser/
5、重启sshd服务:
service sshd restart #或 systemctl restart sshd
6、关闭SElinux:#找到如下这行
vi /etc/sysconfig/selinux #找到如下这行 SELINUX=enforcing #修改为 SELINUX=disabled
7、在物理机系统中打开WinSCP,输入linux设置的用户名及密码
登陆后即可在物理机与虚拟机的Linux系统进行文件传输