在Ubuntu上启用SFTP SSL加密传输,可以按照以下步骤操作:
安装OpenSSH服务器
sudo apt update
sudo apt install openssh-server
生成SSL证书和密钥
sudo mkdir /etc/ssl/private
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/ssh_host_rsa_key -out /etc/ssl/private/ssh_host_rsa_key.pub
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
配置SSH服务器以使用SSL
编辑SSH配置文件 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
找到并修改以下行:
#Port 22
Port 22 # 默认端口,可以根据需要更改
#AddressFamily any
AddressFamily inet
#ListenAddress 0.0.0.0
ListenAddress 0.0.0.0
#PermitRootLogin prohibit-password
PermitRootLogin no
#PasswordAuthentication yes
PasswordAuthentication yes
#ChallengeResponseAuthentication no
ChallengeResponseAuthentication no
#UsePAM yes
UsePAM yes
#X11Forwarding no
X11Forwarding no
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
#SSLProtocol all -SSLv2 -SSLv3
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!aNULL:!MD5
SSLCertificateFile /etc/ssl/private/ssh_host_rsa_key.pub
SSLCertificateKeyFile /etc/ssl/private/ssh_host_rsa_key
#SSLCACertificateFile /etc/ssl/certs/dhparam.pem # 如果使用DH参数文件
重启SSH服务
sudo systemctl restart sshd
验证SSL连接 使用SFTP客户端连接到服务器,例如:
sftp -oPort=22 user@your_server_ip
连接成功后,可以使用以下命令检查是否使用了SSL:
sftp> get /path/to/file
sftp> put /path/to/file
如果你不想使用OpenSSH,还可以考虑使用第三方SFTP服务器软件,如ProFTPD或vsftpd,并配置它们以支持SSL。
安装ProFTPD
sudo apt update
sudo apt install proftpd
配置ProFTPD以支持SSL
编辑ProFTPD配置文件 /etc/proftpd/proftpd.conf
:
sudo nano /etc/proftpd/proftpd.conf
添加以下内容:
TLSRequired on
TLSCipherSuite HIGH:MEDIUM:+SSLv2:!aNULL
TLSCertificateFile /etc/ssl/private/proftpd.pem
TLSCertificateKeyFile /etc/ssl/private/proftpd.key
生成SSL证书和密钥
sudo openssl req -new -x509 -days 365 -nodes -out /etc/ssl/private/proftpd.pem -keyout /etc/ssl/private/proftpd.key
重启ProFTPD服务
sudo systemctl restart proftpd
验证SSL连接 使用SFTP客户端连接到服务器,例如:
sftp -oPort=21 user@your_server_ip
通过以上步骤,你可以在Ubuntu上启用SFTP SSL加密传输,确保数据传输的安全性。