Linux sftp添加用户及免密登录设置

  • sftp用户添加
  1. 添加用户组
    groupadd sftpgroup
  2. 添加用户,并添加到组,禁止登录
    useradd -s /sbin/nologin -g sftpgroup sftpuser
  3. 设置密码 密码需要输入两次
    passwd sftpuser
  4. 设置用户home目录的权限
    chmod 777 /home/sftpuser
  5. 修改配置文件,设定sftp的登录用户组和访问根目录,如果不确定的请先备份这个配置文件
    vi /etc/ssh/sshd_config
    #修改以下配置
    # Subsystem sftp /usr/libexec/openssh/sftp-server #注释掉原来的
    Subsystem sftp internal-sftp #新增
    ###一定要在文件最后追加
    Match Group sftpgrep
    ChrootDirectory /home/sftp #设定属于用户组sftpgrep的用户访问的根文件夹,所有sftp用户都只能访问这个目录
    #或者写成%h 访问当前sftp用户的home文件夹
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no #设置不允许SSH的X转发
    保存退出后重启
    service sshd restart
  6. 使用其他机器或者本地登录sftp测试,输入密码,测试路径是否有问题
    sftp 用户名@主机ip
  • 设置sftp免密登录
  1. 修改配置文件并重启
    vi /etc/ssh/sshd_config
    #修改以下配置
    #在配置文件上是被注释掉的,放开就行
    RSAAuthentication yes
    PubkeyAuthentication yes
  2. 获取客户机的公钥
    ssh-keygen
    #连续两次回车
    #第一个回车是确认密钥的生成路径和文件名
    #第二个回车是设置私钥密码
  3. 将获取到客户机的公钥.pub文件发送到服务器,并安装公钥
    cd /root/.ssh #进入到默认.ssh目录
    cat cat id_rsa.pub >> authorized_keys #安装公钥
  4. 修改文件权限
    cd /root/.ssh #进入到默认.ssh目录
    chmod 600 authorized_keys #设置600权限
    chmod 700 ~/.ssh #设置700权限
  5. 从客服机测试免密登录,如果第二次还需要输入密码请确定步骤4文件权限是否正确
  6. 如果sftp用户无法上传文件,请修改sftp访问目录的权限
    chown -R sftpuser.sftpgroup /home/sftp

以上均为网上资料收集和个人使用后总结出来的。
有问题请指正。

你可能感兴趣的:(Linux sftp添加用户及免密登录设置)