(WINDOWS)REMOTE HOST IDENTIFICATION HAS CHANGED!

一、原因

这个问题是说“远程主机标志已更改”,也就是说我们之前用ssh连接的时候,我们输入过“yes”,相关的主机信息保存在.ssh\known_hosts文件里面,更改之后需要手动删除这条记录

二、解决办法

1、找到这个文件。网络上笔者找的教程大多基于Linux系统,目录与Windows不一致,笔者手动找到的目录是:

C:\Users\用户登陆名\.ssh\known_hosts

2、这个文件可以用VS打开,打开这个文件后删除相关主机信息,重新登陆即可。

### 处理 SFTP 远程主机标识已更改解决方案 当遇到 `WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!` 错误时,这通常是因为远程主机的 SSH 密钥已经改变。这种变化可能是由于重新安装操作系统、更换硬件或其他原因引起的[^1]。 #### 方法一:手动编辑 known_hosts 文件 对于 Linux 或 macOS 用户,在本地计算机上的 `.ssh/known_hosts` 文件中存储着之前访问过的每台远程主机的公钥指纹。如果远程主机的身份发生变化,则需要更新这个文件中的记录: 1. 打开终端并输入以下命令来查看当前用户的 home 目录路径: ```bash echo ~ ``` 2. 使用文本编辑器打开该目录下的 .ssh 文件夹内的 known_hosts 文件,并找到对应于目标服务器的那一行。 3. 删除那一行的内容保存文件即可解决问题。 4. 下次尝试连接时会收到确认新密钥的消息,按照提示接受新的密钥即可建立安全连接[^3]。 #### 方法二:自动移除特定条目 也可以利用 ssh-keygen 工具快速清除指定 IP 地址或域名对应的旧有记录而无需手动查找和删除: ```bash ssh-keygen -R "hostname_or_ip" ``` 这里的 `"hostname_or_ip"` 应替换为目标服务器的实际地址。执行上述指令后将会从 known_hosts 中彻底消除与之关联的所有历史数据项[^4]。 #### 方法三:忽略警告继续操作(不推荐) 虽然可以配置客户端忽略此类验证过程从而强制完成传输任务,但这并不被提倡,因为它降低了安全性并且可能使用户暴露于中间人攻击的风险之下。除非是在非常受控环境下工作,并且完全信任网络环境的安全性,否则不应采取这种方式绕过正常的认证机制[^2]。 ```python import paramiko client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect('hostname', username='user') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值