mkdir -p /sftp/sftp-oa #创建sftp存放路径
groupadd sftp #创建sftp组
# -s /sbin/nologin 没有登录操作系统的权限,但是拥有其他服务的权限
# -d /sftp/sftp-oa 指定家目录,即登录后会进入该目录
# -g sftp 指定用户组
# sftp-oa 创建的用户名
useradd -s /sbin/nologin -d /sftp/sftp-oa -g sftp sftp-oa #创建用户
passwd sftp-oa #为sftp-oa设置密码,输入命令后会提示输入两次密码
chown root:sftp /sftp #修改/sftp文件夹的所有者为root,所在组为sftp
chmod 750 /sftp #修改/sftp文件夹权限,root有用rwx,所在组拥有rx,其他无权限访问
chown sftp-oa /sftp/sftp-oa #修改/sftp/sftp-oa文件夹所有者为sftp-oa
chmod 700 /sftp/sftp-oa #修改/sftp/sftp-oa文件夹所有者有rwx,所在组和其他均无权限
vi /etc/ssh/sshd_config
注释掉这行:#Subsystem sftp /usr/libexec/openssh/sftp-server
添加这行:Subsystem sftp internal-sftp
配置文件末尾添加:
Match User sftp-oa #匹配用户,如果要匹配多个用逗号分隔
ChrootDirectory /sftp 指定用户的根目录,注意:ChrootDirectory路径及向上路径的所有者只能为root,否则登录报错
ForceCommand internal-sftp
上面这两句话可以配置多条
service sshd restart #重启服务
如何修改sftp端口?编辑下面两个文件,在文件中搜索Port,更改对应的端口号后,去掉注释符号#。最后重启服务
/etc/ssh/ssh_config
/etc/ssh/sshd_config
#登录命令
sftp -P 22 sftp-oa@192.168.1.1:sftp-oa
sftp命令:
#查询ssh支持的KexAlgorithms算法(在使用jftp类进行sftp传输时,如果使用了未支持的算法,则会报错)
查找key algorithms字样的输出结果
ssh -v 127.0.0.1