Linux搭建SFTP服务器

  • A+
所属分类:服务搭建

SFTP全称Secret File Transfer Protocol,即安全文件传输协议。随着越来越多的企业对安全意识的提高,一般每年也会内部开展数次安全检查整改工作,其中使用密文传输的SFTP替代明文传输的FTP便是常见的整改项之一。

实验环境

操作系统:RHEL 6.10

OpenSSH:8.0p1

服务端篇

第一步 安装OpenSSH

OpenSSH 4.8p1之后的版本自带SFTP功能模块,建议使用最新版本的OpenSSH,参考教程:Linux编译安装OpenSSH

第二步 创建用户组和用户

  1. [root@wanghualang ~]# groupadd sftp  
  2. [root@wanghualang ~]# useradd wanghualang -g sftp -s /sbin/nologin -M  
  3. [root@wanghualang ~]# echo wanghualang:123456 | chpasswd  

第三步 创建父目录并赋权

  1. [root@wanghualang ~]# mkdir /sftp  
  2. [root@wanghualang ~]# chown root:root /sftp  
  3. [root@wanghualang ~]# chmod 755 /sftp  

第四步 创建子目录并赋权

  1. [root@wanghualang ~]# mkdir /sftp/wanghualang  
  2. [root@wanghualang ~]# chown wanghualang:sftp /sftp/wanghualang  
  3. [root@wanghualang ~]# chmod 755 /sftp/wanghualang  

第五步 修改SSH配置文件

  1. [root@wanghualang ~]# vim /etc/ssh/sshd_config  

  1. #在配置文件末尾插入以下内容  
  2. Subsystem sftp internal-sftp -l INFO -f AUTHPRIV    
  3. ForceCommand internal-sftp    
  4. Match Group sftp    
  5. ChrootDirectory /sftp/    
  6. X11Forwarding no    
  7. AllowTcpForwarding no    

完整配置参考展开

  1. #Port 22  
  2. AddressFamily inet  
  3. #ListenAddress 0.0.0.0  
  4. #ListenAddress ::  
  5. #HostKey /etc/ssh/ssh_host_rsa_key  
  6. #HostKey /etc/ssh/ssh_host_ecdsa_key  
  7. #HostKey /etc/ssh/ssh_host_ed25519_key  
  8. #RekeyLimit default none  
  9. #SyslogFacility AUTH  
  10. SyslogFacility AUTHPRIV  
  11. #LogLevel INFO  
  12. #LoginGraceTime 2m  
  13. PermitRootLogin yes  
  14. #StrictModes yes  
  15. #MaxAuthTries 6  
  16. #MaxSessions 10  
  17. #PubkeyAuthentication yes  
  18. AuthorizedKeysFile  .ssh/authorized_keys  
  19. #AuthorizedPrincipalsFile none  
  20. #AuthorizedKeysCommand none  
  21. #AuthorizedKeysCommandUser nobody  
  22. #HostbasedAuthentication no  
  23. #IgnoreUserKnownHosts no  
  24. #IgnoreRhosts yes  
  25. #PasswordAuthentication yes  
  26. #PermitEmptyPasswords no  
  27. ChallengeResponseAuthentication no  
  28. #KerberosAuthentication no  
  29. #KerberosOrLocalPasswd yes  
  30. #KerberosTicketCleanup yes  
  31. #KerberosGetAFSToken no  
  32. #GSSAPIAuthentication no  
  33. #GSSAPICleanupCredentials yes  
  34. #UsePAM yes  
  35. #AllowAgentForwarding yes  
  36. #AllowTcpForwarding yes  
  37. #GatewayPorts no  
  38. X11Forwarding yes  
  39. #X11DisplayOffset 10  
  40. #X11UseLocalhost yes  
  41. #PermitTTY yes  
  42. PrintMotd no  
  43. PrintLastLog no  
  44. #TCPKeepAlive yes  
  45. #PermitUserEnvironment no  
  46. #Compression delayed  
  47. #ClientAliveInterval 10  
  48. #ClientAliveCountMax 3  
  49. UseDNS no  
  50. #PidFile /var/run/sshd.pid  
  51. #MaxStartups 10:30:100  
  52. #PermitTunnel no  
  53. #ChrootDirectory none  
  54. #VersionAddendum none  
  55. #Banner none  
  56. Subsystem sftp internal-sftp -l INFO -f AUTHPRIV  
  57. ForceCommand internal-sftp  
  58. Match Group sftp  
  59. ChrootDirectory /sftp/  
  60. X11Forwarding no  
  61. AllowTcpForwarding no  

第六步 重启服务

  1. [root@wanghualang ~]# service sshd restart  

第七步 登陆测试

  1. [root@wanghualang ~]# sftp wanghualang@127.0.0.1  
  2. wanghualang@127.0.0.1's password: 123456  
  3. Connected to wanghualang@127.0.0.1.  
  4. sftp>   
  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: