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
相关推荐
wdfk_prog几秒前
Wi-Fi Direct教程 01:在 Ubuntu 搭建双 mac80211_hwsim + wpa_supplicant 2.12
linux·运维·服务器·ubuntu·ros·wifi-direct
Vcaker1 小时前
Linux学习36-k8s集群升级及kube-vip高可用
linux·运维·学习
wdfk_prog1 小时前
Wi-Fi Direct教程 02:从 wpa_cli main() 到 P2P_FIND——用源码注释追踪 CLI 控制命令发送
运维·服务器·网络·网络协议·ubuntu·p2p·wifi-direct
skywalk81631 小时前
Deepseek harness的4种模式 配置文件内容
linux·人工智能·ubuntu·deepseek·harness
沫璃染墨2 小时前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程
YYRAN_ZZU2 小时前
GMSL开发加解串配置介绍
linux·嵌入式硬件
云计算练习生2 小时前
什么是上下文切换?进程切换时 CPU 到底在保存什么
linux·服务器·操作系统·进程切换
用户0510122572962 小时前
RGA(二)——RK3588 的核拓扑与能力差异
linux·嵌入式
用户0510122572962 小时前
RGA(一)——基础知识
linux·嵌入式
qetfw2 小时前
Debian 综合服务实训:Apache2、Samba、LDAP、vsftpd 与 OpenVPN
linux·服务器·debian