在Ubuntu上启用SFTP SSL加密传输,可以按照以下步骤操作:
方法一:使用OpenSSH服务器
-
安装OpenSSH服务器
sudo apt update sudo apt install openssh-server
-
生成SSL证书和密钥
- 创建一个目录来存放证书和密钥:
sudo mkdir /etc/ssl/private
- 生成自签名证书(仅用于测试,生产环境应使用受信任的CA签发的证书):
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
- 如果需要,也可以生成DH参数文件:
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
方法二:使用第三方SFTP服务器软件
如果你不想使用OpenSSH,还可以考虑使用第三方SFTP服务器软件,如ProFTPD或vsftpd,并配置它们以支持SSL。
使用ProFTPD
-
安装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加密传输,确保数据传输的安全性。