溫馨提示×

怎樣在CentOS上配置SFTP密鑰認證

小樊
46
2025-04-08 16:57:52
欄目: 智能運維

在CentOS上配置SFTP密鑰認證可以提供更安全的文件傳輸方式。以下是詳細的步驟:

1. 生成SSH密鑰對

首先,在客戶端機器上生成SSH密鑰對。如果你還沒有SSH密鑰對,可以使用以下命令生成:

ssh-keygen -t rsa -b 4096

按照提示操作,通常會生成兩個文件:id_rsa(私鑰)和id_rsa.pub(公鑰)。你可以選擇設置一個密碼短語來保護私鑰。

2. 將公鑰復制到服務器

使用ssh-copy-id命令將公鑰復制到服務器的~/.ssh/authorized_keys文件中。如果你沒有ssh-copy-id命令,可以使用以下方法手動復制:

ssh-copy-id user@server_ip

如果ssh-copy-id不可用,可以手動復制公鑰:

cat ~/.ssh/id_rsa.pub | ssh user@server_ip 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

確保服務器上的~/.ssh目錄和authorized_keys文件的權限正確:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3. 配置SSH服務器

編輯服務器上的SSH配置文件/etc/ssh/sshd_config,確保以下配置項正確:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

你還可以添加其他安全配置,例如限制SFTP用戶的訪問:

Match Group sftpusers
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

然后創建一個組sftpusers并將需要使用SFTP的用戶添加到該組:

groupadd sftpusers
usermod -aG sftpusers username

4. 重啟SSH服務

保存并關閉sshd_config文件后,重啟SSH服務以應用更改:

systemctl restart sshd

5. 測試SFTP連接

現在,你可以使用SFTP客戶端連接到服務器進行測試:

sftp username@server_ip

如果一切配置正確,你應該能夠使用密鑰認證登錄到服務器。

6. 防火墻配置

確保服務器的防火墻允許SSH連接(默認端口22):

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

7. SELinux配置(可選)

如果服務器啟用了SELinux,可能需要調整SELinux策略以允許SFTP chroot jail:

setsebool -P ssh_sysadm_login on
setsebool -P ssh_keysign on

通過以上步驟,你應該能夠在CentOS上成功配置SFTP密鑰認證。

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