@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Host key verification failed.
提示信息中可能还会包含:
Offending ECDSA key in /Users/username/.ssh/known_hosts:26
Host key for 192.168.XXX.XXX has changed
二、为什么会发生
SSH 通过 主机密钥(Host Key) 验证服务器身份:
第一次连接服务器时,SSH 会保存服务器的公钥指纹到本地:
后续连接时,会对比服务器发来的指纹与本地保存的指纹。
如果指纹不一致,SSH 会拒绝连接,防止中间人攻击。
重装系统时,服务器会重新生成新的 SSH 主机密钥。
因此,旧的指纹与新的不匹配。
SSH 就会报“REMOTE HOST IDENTIFICATION HAS CHANGED”。
三、解决方法
在本地终端执行:
ssh-keygen -R <服务器IP>
ssh root@<服务器IP>
首次连接会提示:
Are you sure you want to continue connecting (yes/no)?
在日常的 Linux 运维工作中保持系统更新是至关重要的。最近在维护 Red Hat Enterprise Linux (RHEL) 10 系统时,我遇到了一个让人头疼的问题:执行 dnf update 命令时,系统反复报出“Status code: 403 Forbidden”的错误。尽管 subscription-manager 显示系统已注册,但软件仓库的访问权限似乎被拒绝了。
1. 问题现象:dnf update 403 错误
我在终端执行系统更新命令 dnf update 时,出现了以下错误信息:
dnf update
系统报错:
Errors during downloading metadata for repository 'rhel-10-for-x86_64-appstream-rpms':
- Status code: 403 for https://cdn.redhat.com/content/dist/rhel10/10/x86_64/appstream/os/repodata/repomd.xml
Error: Failed to download metadata for repo 'rhel-10-for-x86_64-appstream-rpms': Cannot download repomd.xml: All mirrors were tried
报错中的“Status code: 403”是关键线索。在 HTTP 协议中,403 状态码意味着“权限被禁止”。这表明我的请求已成功发送至 Red Hat 服务器,但服务器因权限问题拒绝了我的访问。
2. 初步排查
既然是权限问题,我首先想到了系统订阅状态。执行 subscription-manager status 命令后,结果显示一切正常:
subscription-manager status
Overall Status: Registered
执行后,终端会返回 All local data removed,这表明旧的、可能已损坏的授权数据已经被彻底清除。
步骤二:重新注册系统
清除数据后,系统将处于未注册状态。我们可以使用 subscription-manager register 命令进行重新注册,并输入正确的 Red Hat 账户凭据。
subscription-manager register
系统会提示输入用户名和密码,注册成功后会返回新的系统 ID:
Registering to: subscription.rhsm.redhat.com:443/subscription
Username: <你的 Red Hat 账户用户名>
Password: <你的 Red Hat 账户密码>
The system has been registered with ID: ...
步骤三:验证更新
完成重新注册后,再次执行 dnf update。这次,系统终于能够顺利连接到 Red Hat 软件仓库,并开始下载元数据和软件包。
dnf update
Updating Subscription Management repositories.
Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs)