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. 执行传输文件操作
    至此再次执行向远程服务器传输文件的指令即可完成操作。
相关推荐
通信小小昕12 分钟前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫1 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生2 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.113 小时前
linux基础IO
linux·运维·服务器
BelongPanda5 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯5 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_777998345 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器
yunwei375 小时前
eBPF 教程:检查 exec 后真正安装的可执行镜像
linux·开源
笑锝没心没肺6 小时前
yum update 报错:GPG key retrieval failed: [Errno 14] HTTPS Error 404 - Not Found
linux·运维·服务器
AAA@峥6 小时前
CentOS Stream8 基于 Packstack 搭建 OpenStack 云平台全流程实战
linux·centos·openstack