如何阻止OpenSSH每次更新known_hosts时创建新文件?
如何阻止OpenSSH每次更新known_hosts时创建新文件?
这个问题我太感同身受了!之前把dotfiles放进Git仓库统一管理时,也踩过一模一样的坑——SSH每次更新known_hosts时的这套备份操作,直接把指向仓库文件的软链接搞废了,导致新的主机密钥根本同步不到版本库,完全违背了跨设备共享known_hosts的初衷。
其实OpenSSH本身就提供了关闭这个默认备份行为的配置,你只需要做这一步:
在你的个人SSH配置文件~/.ssh/config中添加一行:
BackupKnownHosts no
如果想让这个设置对系统所有用户生效,可以编辑全局配置文件/etc/ssh/ssh_config,找到BackupKnownHosts项,把默认的yes改成no即可。
这个配置的作用很直白:告诉SSH更新known_hosts时直接编辑原文件,不要创建known_hosts.old备份文件。这样你的软链接就不会被替换成普通文件,新的主机密钥会直接写入你Git仓库里的目标文件,之后正常执行git commit和push就能同步到其他设备了。
你可以改完配置后测试一下:连接一个新主机并接受密钥,看看是不是不会生成known_hosts.old了,同时去Git仓库里的文件里检查,新的主机条目已经正常写入了。
备注:内容来源于stack exchange,提问作者N. I.
相关产品推荐
相关产品推荐

