sshpass传输文件提示Host key verification failed.

1. sshpass功能简述

sshpass指令可用于A服务器向B服务器传输文件或执行某些指令。

2. 传输文件指令

基本传输命令:sshpass -p 远程服务器登录密码 scp 本地路径文件 远程服务器登录用户名@远程服务器IP地址:远程服务器文件保存路径

示例:

bash 复制代码
sshpass -p '123' scp /mnt/files/1.tar.gz root@20.99.5.7:/mnt/upload/files

3. 补充描述

当A服务器首次连接B服务器时,会在本地服务器缓存服务器B返回的密钥,用于下次进行连接校验。

该密钥存储在 ~/.ssh/known_hosts 文件中。

4. 问题

连接传输文件时,首次连接或服务器重启,有可能导致原先的密钥失效,需要重新配置。

此时若发起连接,会报错:

Host key verification failed.

5. 解决方案

  1. 查看 ~/.ssh/known_hosts 文件中,是否存在远程服务器IP的密钥信息,若没有,则说明从未建立连接;若有,则手动编辑删除与当前远程服务器IP(20.99.5.7)相关的密钥信息。

  2. 执行操作指令重新建立连接

建立连接:ssh -p 22 -o StrictHostKeyChecking=no 远程服务器登录用户名@远程服务器IP地址

示例:

bash 复制代码
ssh -p 22 -o StrictHostKeyChecking=no root@20.99.5.7

会提示输入密码,输入密码之后即可完成建立连接,如下图:

然后可以输入 exit 完成退出连接远程服务器

bash 复制代码
exit

再次检查 当前服务器 的 ~/.ssh/known_hosts 文件,发现增加了 远程服务器的密钥信息。

  1. 执行传输文件操作
    至此再次执行向远程服务器传输文件的指令即可完成操作。
相关推荐
朝发如雪11 小时前
快速掌握Linux(2)(时间相关函数)(文件IO)
linux·python·算法
郭涤生11 小时前
VScode回归ACM模式(古法编程)配置
linux·ide·vscode
盐焗鹌鹑蛋11 小时前
【Linux】ELF与库加载
java·linux·服务器
梦诺11 小时前
LINUX定时执行脚本
linux·运维·服务器
wazmlp00188736912 小时前
控制器管理
linux·运维·服务器
学linux的QQ蛋12 小时前
Linux 文件 IO:系统调用 open/read/write 完整总结
linux·运维·算法
sg_knight12 小时前
openCode 安装与初始化配置(Windows / macOS / Linux)
linux·windows·macos·llm·agent·ai编程·opencode
Rei224812 小时前
使用llama.cpp的Qwen3.6-27B-Q8本地部署详解【Linux GPU】
linux·运维·llama
ComputerInBook12 小时前
Linux内核之概观
linux·linux内核代码结构·linux内核结构
M78佐菲1 天前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法