CentOS 6.0的sftp配置

openssh的信息为:
openssh-clients-5.3p1-20.el6_0.3.x86_64
openssh-server-5.3p1-20.el6_0.3.x86_64
openssh-5.3p1-20.el6_0.3.x86_64

1. 添加用户

  
  
  
  
  1. useradd -u 502 -d /data/sftp -s /sbin/nologin -M sftp 

-d /data/sftp:指定用户的主目录为/data/sftp

-s /sbin/nologin:指定用户不能登录

-M:不创建主目录

-u 502:指定uid为502

2. 配置sshd_config

  
  
  
  
  1. vi /etc/ssh/sshd_config  
  2. # 将以下行注释,更换成internal-sftp  
  3. # Subsystem sftp /usr/libexec/openssh/sftp-server  
  4. Subsystem sftp internal-sftp  
  5. # 添加以下行  
  6. Match User sftp  
  7. ChrootDirectory /data/sftp  
  8. AllowTcpForwarding no  
  9. ForceCommand internal-sftp  

3. 配置目录权限

  
  
  
  
  1. chown -R root:root /data/sftp  
  2. chmod 0755 /data/sftp 

目录权限需要注意:
a. 由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
b. 由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限

  
  
  
  
  1. mkdir /data/sftp/upload  
  2. chown -R sftp:sftp /data/sftp/upload 

这个目录为sftp用户拥有权限的子目录

4. 配置密钥登录

  
  
  
  
  1. mkdir .ssh  
  2. # 产生密钥  
  3. ssh-keygen -t rsa  
  4. Generating public/private rsa key pair.  
  5. Enter file in which to save the key (/root/.ssh/id_rsa): /data/sftp/.ssh/sftp # 密钥保存的位置,因为sftp用户的主目录为/data/sftp,所以选择在此位置  
  6. Enter passphrase (empty for no passphrase): # 输入短语密码  
  7. Enter same passphrase again: # 再次输入短语密码  
  8. Your identification has been saved in /data/sftp/.ssh/sftp.  
  9. Your public key has been saved in /data/sftp/.ssh/sftp.pub.  
  10. cd /data/sftp/.ssh  
  11. # 创建允许登录的公钥  
  12. mv sftp.pub authorized_keys2  
  13. # 修改权限  
  14. chown -R sftp:sftp /data/sftp/.ssh  
  15. chmod 0600 authorized_keys2 sftp 

下载私钥到,在登录工具中使用这个密钥登录即可

4. 重启sshd

  
  
  
  
  1. # 先用以下命令测试配置文件  
  2. sshd -T  
  3. service sshd restart 

 

你可能感兴趣的:(centos,centos,职场,sftp,休闲,6.0)