要将新IP的 SSH 指纹添加到 known_hosts 文件,有自动添加 和手动添加两种常用方式,可根据场景选择:
一、自动添加(最常用,适合首次连接)
这是最简单的方式,通过一次 SSH 连接自动完成指纹写入,无需手动编辑文件:
-
在客户端执行 SSH 测试连接命令(替换为你的 GitLab 新 IP)
bashssh -T git@192.168.11.198 -
系统会提示指纹验证,输入
yes并回车bashThe 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 -
验证成功后,系统会自动将新 IP 的指纹追加到
known_hosts文件,提示:bashWarning: Permanently added '192.168.11.198' (ED25519) to the list of known hosts.
二、手动添加(适合批量/提前配置,避免交互)
如果需要提前添加指纹(无需首次连接交互),可以用 ssh-keyscan 命令直接从服务器获取指纹并写入文件:
-
Linux/macOS 执行命令(替换为你的新 IP)
bashssh-keyscan 192.168.11.198 >> ~/.ssh/known_hosts -
Windows(PowerShell) 执行命令
bashssh-keyscan 192.168.11.198 >> $env:USERPROFILE\.ssh\known_hosts
优势:无需手动确认,适合批量配置多台服务器,且能避免中间人攻击风险(直接从服务器获取指纹)。
三、直接编辑文件(适合精确控制)
若需手动修改 known_hosts 文件,需先获取服务器的 SSH 公钥指纹,再按格式写入:
-
获取服务器指纹(在 GitLab 服务器端执行)
bash# 查看 ED25519 算法的公钥指纹 ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key.pub -
编辑客户端
known_hosts文件-
Linux/macOS :打开
~/.ssh/known_hosts -
Windows :打开
C:\Users\你的用户名.ssh\known_hosts
-
-
添加指纹条目 (格式为
IP 算法 公钥内容)bash192.168.11.198 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI2GUOSXs2sgugVNWowo/r8Ikywx9zvP/CQpv3IVOm7/4
四、前置注意事项
-
清理旧 IP 记录 :若
known_hosts中存在 GitLab 旧 IP 的指纹,需先删除避免冲突bashssh-keygen -R 旧IP -
文件权限 :确保
known_hosts文件权限正确(Linux/macOS 需设为600,避免被其他用户修改)bashchmod 600 ~/.ssh/known_hosts
需要我帮你生成一个批量更新多IP指纹的脚本吗?你可以一次性添加多个服务器的SSH指纹到known_hosts。