在CentOS系統上設置SFTP公鑰認證可以提高安全性并簡化用戶登錄過程。以下是詳細的步驟指南:
首先,你需要在客戶端機器上生成SSH密鑰對(如果還沒有的話)。打開終端并運行以下命令:
ssh-keygen -t rsa -b 4096
按照提示操作,通常會生成兩個文件:id_rsa
(私鑰)和id_rsa.pub
(公鑰)。你可以選擇設置一個密碼短語來保護私鑰。
接下來,你需要將生成的公鑰復制到CentOS服務器上的目標用戶的~/.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
如果你希望限制只有SFTP訪問權限,可以添加或修改以下配置:
Subsystem sftp /usr/libexec/openssh/sftp-server
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
如果你希望限制某些用戶只能使用SFTP,可以創建一個專門的用戶組并添加相關用戶:
sudo groupadd sftpusers
sudo usermod -aG sftpusers username
其中,username
是你要添加到SFTP用戶組的用戶名。
完成上述配置后,重啟SSH服務以使更改生效:
sudo systemctl restart sshd
現在,你可以嘗試從客戶端機器連接到服務器并使用SFTP:
sftp username@server_ip
系統會提示你輸入密碼(如果你設置了密碼短語,需要輸入)。成功連接后,你應該能夠使用SFTP命令進行文件傳輸。
/etc/ssh/sshd_config
文件的權限正確,通常應該是600
。~/.ssh
目錄和~/.ssh/authorized_keys
文件的權限也正確,通常應該是700
和600
。/var/log/secure
以獲取更多信息。通過以上步驟,你應該能夠在CentOS系統上成功設置SFTP公鑰認證。