溫馨提示×

SFTP用戶認證如何設置

小樊
39
2025-08-29 05:46:14
欄目: 編程語言

SFTP用戶認證主要有密碼認證和密鑰認證兩種方式,以下是具體設置步驟:

密碼認證

  1. 安裝OpenSSH服務器
    • CentOS:sudo yum install openssh-server
    • Debian/Ubuntu:sudo apt update && sudo apt install openssh-server
  2. 創建SFTP用戶
    sudo groupadd sftpusers  # 創建用戶組
    sudo useradd -g sftpusers -s /sbin/nologin sftpuser  # 創建用戶并禁止SSH登錄
    sudo passwd sftpuser  # 設置密碼
    
  3. 配置SSH文件
    編輯/etc/ssh/sshd_config,添加以下內容:
    Subsystem sftp internal-sftp
    Match Group sftpusers
        ChrootDirectory %h  # 限制用戶只能訪問主目錄
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
    確保PasswordAuthentication yes(默認開啟)。
  4. 設置目錄權限
    sudo mkdir /home/sftpuser/uploads  # 創建可寫目錄
    sudo chown root:root /home/sftpuser  # 主目錄屬主為root
    sudo chmod 755 /home/sftpuser
    sudo chown sftpuser:sftpusers /home/sftpuser/uploads  # 可寫目錄屬主為用戶
    
  5. 重啟SSH服務
    sudo systemctl restart sshd

密鑰認證(更安全,推薦)

  1. 生成密鑰對(客戶端)
    ssh-keygen -t rsa -b 4096(默認保存到~/.ssh/id_rsa~/.ssh/id_rsa.pub
  2. 上傳公鑰到服務器
    ssh-copy-id sftpuser@server_ip(或手動復制公鑰到服務器~/.ssh/authorized_keys
  3. 配置SSH服務器
    /etc/ssh/sshd_config中添加:
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PasswordAuthentication no  # 可選:禁用密碼認證
    
  4. 重啟SSH服務
    sudo systemctl restart sshd

驗證連接

使用SFTP客戶端(如FileZilla或命令行)連接:
ssh sftpuser@server_ip(密碼認證需輸入密碼,密鑰認證需指定私鑰路徑)

安全提示

  • 禁用密碼認證可進一步提升安全性(需確保密鑰配置正確)。
  • 確保ChrootDirectory的權限為755且屬主為root,防止用戶越權訪問。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女