在CentOS上啟用SFTP并使用SSL/TLS加密連接,可以按照以下步驟進行操作:
首先,確保你的CentOS系統上已經安裝了OpenSSH服務器。如果沒有安裝,可以使用以下命令進行安裝:
sudo yum install openssh-server
編輯OpenSSH服務器的配置文件 /etc/ssh/sshd_config
,以啟用SFTP并配置SSL/TLS。
sudo vi /etc/ssh/sshd_config
在文件中找到或添加以下配置項:
# 啟用SFTP子系統
Subsystem sftp /usr/libexec/openssh/sftp-server
# 啟用SSL/TLS
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
# 強制使用SSL/TLS
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha2-256,hmac-sha2-512
KexAlgorithms diffie-hellman-group-exchange-sha256
確保你已經生成了SSH主機密鑰。如果沒有生成,可以使用以下命令生成:
sudo ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t ecdsa -b 256 -f /etc/ssh/ssh_host_ecdsa_key
sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
保存并關閉配置文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
確保防火墻允許SSH連接。如果你使用的是firewalld
,可以添加以下規則:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
如果你使用的是iptables
,可以添加以下規則:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo service iptables save
現在,你可以使用SFTP客戶端連接到你的服務器,并驗證SSL/TLS加密是否生效。例如,使用ssh
命令連接到服務器:
ssh -o StrictHostKeyChecking=no user@your_server_ip
然后,啟動SFTP會話:
sftp>
在SFTP會話中,你可以使用ls
、cd
等命令來瀏覽文件系統。
你可以使用ss
或netstat
命令來驗證SSH服務是否正在監聽SSL/TLS端口(默認是22):
sudo ss -tuln | grep 22
或者:
sudo netstat -tuln | grep 22
如果看到類似以下的輸出,說明SSH服務正在監聽SSL/TLS端口:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
通過以上步驟,你應該能夠在CentOS上成功啟用SFTP并使用SSL/TLS加密連接。