Ubuntu FTP/SFTP 报错:找不到匹配的 hostkey 算法 完整解决

Ubuntu FTP/SFTP 报错:找不到匹配的 hostkey 算法 完整解决

这个报错本质:本地客户端支持的主机密钥算法 和 Ubuntu 服务端开启的算法不兼容,常见两种场景:

  1. 你用 Windows Xshell/FileZilla/CRT 连 Ubuntu SFTP(FTP over SSH,最常见)
  2. 纯 vsftpd FTP(无 SSH,极少报这个错,基本是 SFTP)

一、先分清:你是 SFTP 还是普通 FTP

  • 端口 22、协议 SFTP/SCP → SSH 底层,才会报 hostkey 算法
  • 端口 21、FTP/FTPS → 和 hostkey 无关,报错不一样

方案 1:修改 Ubuntu SSH 服务端(推荐,一劳永逸)

登录 Ubuntu,编辑 ssh 配置

bash 复制代码
sudo nano /etc/ssh/sshd_config

在文件末尾添加兼容密钥算法(适配老旧客户端):

bash 复制代码
# 主机密钥算法
HostKeyAlgorithms ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519
# 密钥交换算法(配套)
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
# 加密算法
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr
# MAC校验
MACs hmac-sha1,hmac-sha2-256,hmac-sha2-512

保存退出:Ctrl+O → 回车 → Ctrl+X

校验配置是否写错(必须执行,否则 ssh 重启失败):

bash 复制代码
sudo sshd -t

无输出代表正常,重启 ssh 服务:

bash 复制代码
sudo systemctl restart sshd
相关推荐
LongRunning13 小时前
【Linux】RK3568-OpenCV+YOLO(八)
linux·opencv·yolo
民乐团扒谱机16 小时前
【微实验】NSGA-II(非支配排序遗传算法)——解决多目标优化问题的“自然选择模拟器”
linux·人工智能·算法
물の韜16 小时前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq
qq_3718021116 小时前
Ubuntu Linux中安装WorkBuddy
linux·运维·服务器·ubuntu
无足鸟ICT16 小时前
【RHCA+】iptraf-ng(网络监控分析)
linux·网络
独隅17 小时前
WebStorm 在 Linux 环境下的实战安装与高效开发指南
linux·ide·webstorm
坤坤子吖18 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
阡陌数智19 小时前
Claude API新版本重大变更与安全升级指南
java·linux·安全
奶茶树19 小时前
【Linux】环境开发工具(vim,gcc,g++,Makefile)
linux·运维·vim
木子欢儿1 天前
国内 macOS/Linux 安装 rust
linux·运维·服务器·macos·rust