在CentOS系統中配置SFTP以使用密鑰認證,可以按照以下步驟進行:
首先,你需要在客戶端生成一個SSH密鑰對。如果你已經有一個密鑰對,可以跳過這一步。
ssh-keygen -t rsa -b 4096
按照提示操作,通常會生成兩個文件:id_rsa(私鑰)和id_rsa.pub(公鑰)。
將生成的公鑰復制到服務器的~/.ssh/authorized_keys文件中。你可以使用ssh-copy-id命令來完成這一步:
ssh-copy-id user@server_ip
其中,user是服務器上的用戶名,server_ip是服務器的IP地址。
確保服務器的SSH配置文件/etc/ssh/sshd_config允許密鑰認證。編輯該文件:
sudo vi /etc/ssh/sshd_config
找到并確保以下行沒有被注釋掉(即沒有以#開頭):
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存并退出編輯器。
為了使配置生效,需要重啟SSH服務:
sudo systemctl restart sshd
默認情況下,SSH和SFTP使用相同的配置。因此,只要SSH配置正確,SFTP也會使用密鑰認證。
現在,你可以嘗試使用SFTP連接到服務器:
sftp user@server_ip
如果一切配置正確,你應該能夠使用密鑰認證登錄到服務器。
確保服務器的防火墻允許SSH連接。如果你使用的是firewalld,可以添加以下規則:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
如果你使用的是iptables,可以添加以下規則:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
如果你的系統啟用了SELinux,可能需要調整SELinux策略以允許SFTP使用密鑰認證。你可以臨時禁用SELinux進行測試:
sudo setenforce 0
或者,你可以修改SELinux策略文件/etc/selinux/config,將SELINUX=enforcing改為SELINUX=permissive,然后重啟系統。
通過以上步驟,你應該能夠在CentOS系統中成功配置SFTP以使用密鑰認證。