溫馨提示×

SFTP配置中如何啟用公鑰認證

小樊
74
2025-05-05 08:26:34
欄目: 編程語言

在SFTP配置中啟用公鑰認證可以提高安全性,以下是具體步驟:

服務器端配置

  1. 生成SSH密鑰對

    • 在服務器上,使用ssh-keygen命令生成一對公鑰和私鑰。
      ssh-keygen -t rsa -b 4096 -m PEM -f ~/.ssh/id_rsa
      
    • 這將生成id_rsa(私鑰)和id_rsa.pub(公鑰)文件。
  2. 將公鑰復制到服務器的授權密鑰文件中

    • 將生成的公鑰文件id_rsa.pub的內容追加到服務器用戶的~/.ssh/authorized_keys文件中。
      cat ~/.ssh/id_rsa.pub | ssh user@server 'cat >> ~/.ssh/authorized_keys'
      
    • 確保~/.ssh目錄和authorized_keys文件的權限正確:
      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/authorized_keys
      
  3. 配置SSH服務器以使用公鑰認證

    • 編輯服務器上的SSH配置文件/etc/ssh/sshd_config。
      sudo nano /etc/ssh/sshd_config
      
    • 找到并修改以下行:
      PubkeyAuthentication yes
      
    • 確保以下行沒有被注釋掉(即前面沒有#):
      AuthorizedKeysFile .ssh/authorized_keys
      
    • 保存并退出編輯器。
  4. 重啟SSH服務

    • 重啟SSH服務以應用更改。
      sudo systemctl restart sshd
      

客戶端配置

  1. 將私鑰添加到SSH代理

    • 如果你使用的是SSH代理(如ssh-agent),可以將私鑰添加到代理中。
      eval "$(ssh-agent -s)"
      ssh-add ~/.ssh/id_rsa
      
  2. 配置SSH客戶端使用私鑰

    • 在客戶端的SSH配置文件~/.ssh/config中添加以下內容(如果文件不存在,可以創建一個):
      Host your_server_hostname
          HostName your_server_ip_or_hostname
          User your_username
          IdentityFile ~/.ssh/id_rsa
      
    • 這樣,當你連接到服務器時,SSH客戶端會自動使用指定的私鑰進行認證。

測試連接

  • 使用SFTP客戶端連接到服務器,驗證公鑰認證是否成功。
    sftp your_username@your_server_hostname
    

通過以上步驟,你應該能夠在SFTP配置中成功啟用公鑰認證。這樣可以提高連接的安全性,并減少密碼泄露的風險。

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