新IP的 SSH 指纹添加到 known_hosts 文件

要将新IP的 SSH 指纹添加到 known_hosts 文件,有自动添加手动添加两种常用方式,可根据场景选择:


一、自动添加(最常用,适合首次连接)

这是最简单的方式,通过一次 SSH 连接自动完成指纹写入,无需手动编辑文件:

  1. 在客户端执行 SSH 测试连接命令(替换为你的 GitLab 新 IP)

    bash 复制代码
    ssh -T git@192.168.11.198
  2. 系统会提示指纹验证,输入 yes 并回车

    bash 复制代码
    The authenticity of host '192.168.11.198 (192.168.11.198)' can't be established. ED25519 key fingerprint is SHA256:12GUOSXs2sgugVNWowo/r8Ikywx9zvP/CQpv3IVOm7/4. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
  3. 验证成功后,系统会自动将新 IP 的指纹追加到 known_hosts 文件,提示:

    bash 复制代码
    Warning: Permanently added '192.168.11.198' (ED25519) to the list of known hosts.

二、手动添加(适合批量/提前配置,避免交互)

如果需要提前添加指纹(无需首次连接交互),可以用 ssh-keyscan 命令直接从服务器获取指纹并写入文件:

  1. Linux/macOS 执行命令(替换为你的新 IP)

    bash 复制代码
    ssh-keyscan 192.168.11.198 >> ~/.ssh/known_hosts
  2. Windows(PowerShell) 执行命令

    bash 复制代码
    ssh-keyscan 192.168.11.198 >> $env:USERPROFILE\.ssh\known_hosts

优势:无需手动确认,适合批量配置多台服务器,且能避免中间人攻击风险(直接从服务器获取指纹)。


三、直接编辑文件(适合精确控制)

若需手动修改 known_hosts 文件,需先获取服务器的 SSH 公钥指纹,再按格式写入:

  1. 获取服务器指纹(在 GitLab 服务器端执行)

    bash 复制代码
    # 查看 ED25519 算法的公钥指纹 
    ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key.pub
  2. 编辑客户端 known_hosts 文件

    1. Linux/macOS :打开 ~/.ssh/known_hosts

    2. Windows :打开 C:\Users\你的用户名.ssh\known_hosts

  3. 添加指纹条目 (格式为 IP 算法 公钥内容

    bash 复制代码
    192.168.11.198 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI2GUOSXs2sgugVNWowo/r8Ikywx9zvP/CQpv3IVOm7/4

四、前置注意事项

  1. 清理旧 IP 记录 :若 known_hosts 中存在 GitLab 旧 IP 的指纹,需先删除避免冲突

    bash 复制代码
    ssh-keygen -R 旧IP
  2. 文件权限 :确保 known_hosts 文件权限正确(Linux/macOS 需设为 600,避免被其他用户修改)

    bash 复制代码
    chmod 600 ~/.ssh/known_hosts

需要我帮你生成一个批量更新多IP指纹的脚本吗?你可以一次性添加多个服务器的SSH指纹到known_hosts。

相关推荐
铭哥的编程日记9 小时前
DNS解析 HTTP TCP/IP ICMP/NAT/NAPT相关知识点
网络协议·tcp/ip·http
小江的记录本9 小时前
【AOP】AOP-面向切面编程 (系统性知识体系全解)
java·前端·后端·python·网络协议·青少年编程·代理模式
安逸sgr9 小时前
MCP 协议深度解析(一):MCP 协议概览与架构设计
服务器·网络·人工智能·网络协议·agent·mcp
kaisun649 小时前
树莓派4B无头安装与远程连接踩坑记:从零到SSH成功
ssh·raspberry·嵌入式实践
九成宫9 小时前
SSH 密钥操作经历与 VSCode 远程连接“找不到ssh安装”解决
运维·vscode·ssh
MMendex9 小时前
华为云项目实战day1
linux·服务器·nginx·华为云·ssh·负载均衡
相思难忘成疾20 小时前
《RHEL9虚拟机部署及SSH远程登录实践手册》
linux·运维·ssh·虚拟机
北京耐用通信21 小时前
耐达讯自动化CC-Link IE转DeviceNet网关:破解三菱与欧姆龙PLC协同壁垒的工业实践
人工智能·科技·物联网·网络协议·自动化
山上三树1 天前
Socket(套接字)
tcp/ip
Andy工程师1 天前
WebSocket介绍
websocket·网络协议