1. 使用root用户查看openssh的版本:版本需大于4.8p1
1 2 3 4 5 |
#ssh -V //如果版本过低,可以使用 yun update 进行更新 [root@localhost ~]# ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 [root@localhost ~]# |
2、使用root用户创建用户组,组名为sftpgroup;创建sftp用户,用户名为root,并给用户设置密码
1 2 3 4 5 6 7 8 9 10 |
[root@localhost ~]# groupadd sftpgroup [root@localhost ~]# useradd -g sftpgroup root [root@localhost ~]# passwd root Changing password for user root. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully. [root@localhost ~]# |
3. 修改配置文件sshd_config (开启sftp)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
vim /etc/ssh/sshd_config 修改如下: 将下面这行注释掉 #Subsystem sftp /usr/libexec/openssh/sftp-server ## 在文件末尾添加如下几行 Subsystem sftp internal-sftp ##配置一个外部子系统(例如,一个文件传输守护进程)。仅用于SSH-2协议 Match Group sftpgroup #限定只有sftp组的才能访问 X11Forwarding no #是否允许进行 X11 转发。默认值是"no" AllowTcpForwarding no #是否允许tcp转发 ChrootDirectory %h #设定属于用户组sftp的用户访问的根文件夹(当前为home,当然你可以手动指定用户的home文件夹) ForceCommand internal-sftp #强制执行这里指定的命令而忽略客户端提供的任何命令。这个命令将使用用户的登录###shell执行(shell -c)。这可以应用于 shell 、命令、子系统的完成,通常用于 Match 块中。###这个命令最初是在客户端通过 SSH_ORIGINAL_COMMAND 环境变量来支持的。 |
保存后重启下sshd : systemctl restart sshd.service
4.用户权限设置
1 2 3 4 5 6 7 8 9 10 11 |
1.禁止用户登录系统权限 usermod -s /sbin/nologin shooter 2.设置用户文件夹权限(少了这步,连接会被拒绝,Disconnected) chown root:sftpgroup /home/shooter ##注意点这里的属主用户为root,其他用户你将无法登录 3.设置用户文件夹权限(少了这步会报错,无法显示用户文件夹) chmod 755 /home/shooter 4.设置sftp用户可以操作的目录(如果不设置用户无法上传,当然你也可以把根目录设置成用户可操作的目录) mkdir /home/shooter/upload chown shooter:sftpgroup /home/shooter/upload chmod 755 /home/shooter/upload |
1 2 3 4 5 6 7 8 9 10 |
#或者你想根目录指定到其他地方 mkdir -p /data/sftp/shooter usermod –d /data/sftp/shooter shooter chown root:sftpgroup /data/sftp/shooter chmod 755 /data/sftp/shooter mkdir /data/sftp/shooter/upload chown shooter:sftpgroup /data/sftp/shooter/upload chmod 755 /data/sftp/shooter/upload |
设置完成 我们现在来登录
[命令行方式登录]
5.如果你不想把用户目录放在home下想自己指定,请往下继续看
1 2 3 4 |
#改变shooter用户sftp目录,我把他改到根下的tmp/shooter文件夹下 [root@localhost ~]# mkdir -p /tmp/shooter [root@localhost ~]# usermod -d /tmp/shooter shooter [root@localhost ~]# cat /etc/passwd |
1 2 3 4 |
#5.1.给予新的用户目录权限(注意你的最外层tmp目录权限必须是755 否则无法登陆的#注:无论你在哪里你的最外层文件夹权限必须为755) chown root:sftpgroup /tmp/shooter chmod 755 /tmp/shooter |
登陆查看
#一般建议就放在home目录下,不建议修改目录,除非你有特殊需求,在home目录下你完全可以把其他目录挂载过去,因为在home目录下可以设定私钥登录.这样ftp更安全,在其他地方私钥当然也可以,但是很费劲很费劲,本人体验过了,不想再体验了。私钥登录请看另一篇文章 [sftp私钥登录篇]
- 本文固定链接: https://www.yoyoask.com/?p=279
- 转载请注明: shooter 于 SHOOTER 发表