配置Debian系統上的SFTP以使用公鑰認證涉及幾個步驟。以下是一個詳細的指南:
首先,你需要在客戶端生成一個SSH密鑰對(如果還沒有的話)。在客戶端終端上運行以下命令:
ssh-keygen -t rsa -b 4096
按照提示操作,通常會生成兩個文件:~/.ssh/id_rsa
(私鑰)和~/.ssh/id_rsa.pub
(公鑰)。
將生成的公鑰復制到服務器的~/.ssh/authorized_keys
文件中。你可以使用ssh-copy-id
命令來完成這一操作:
ssh-copy-id user@server_ip
其中,user
是你在服務器上的用戶名,server_ip
是服務器的IP地址。
編輯服務器上的SSH配置文件/etc/ssh/sshd_config
,確保以下配置項正確設置:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存并關閉文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
SFTP通常是通過SSH協議提供的,因此配置SFTP與配置SSH基本相同。確保sshd_config
文件中包含以下行:
Subsystem sftp /usr/lib/openssh/sftp-server
這行代碼確保SFTP子系統被正確加載。
現在,你可以嘗試使用SFTP連接到服務器:
sftp user@server_ip
如果一切配置正確,你應該能夠成功連接并使用SFTP。
確保~/.ssh
目錄和authorized_keys
文件的權限正確:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
確保SSH服務器配置文件/etc/ssh/sshd_config
中的其他安全設置(如PasswordAuthentication no
)符合你的安全需求。
通過以上步驟,你應該能夠成功配置Debian系統上的SFTP以使用公鑰認證。