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
相关推荐
xatu8 小时前
ubuntu容器在redhat系统下使用大模型API问题
linux·运维·ubuntu
水饺编程9 小时前
第2章:Linux 基础,rm 命令
linux·c语言·汇编
雪落漂泊9 小时前
Linux基础开发工具(三)gcc/g++与make/makefile篇
linux·运维·服务器
爱吃辣椒的小豆豆9 小时前
Linux-sshd-实战-白名单与跳板机
linux·运维·服务器
气质、小青年!9 小时前
进程1学习
linux·学习
blueSatchel10 小时前
framebuffer注册源码解读
linux·嵌入式
2401_8628808210 小时前
嵌入式Linux系统移植与驱动开发完整指南
linux·c语言·驱动开发
Lysander.Jovian10 小时前
CentOS 迁移 Ubuntu 24.04 使用教程
ubuntu
坤坤子吖10 小时前
Linux 线程同步与互斥——互斥锁
linux·服务器·c++·笔记·学习
TDTC_XQ10 小时前
Linux网络编程accept的讲解
linux·服务器·c++