Mac备份迁移SSH配置的核心是安全完整保留~/.ssh目录(含私钥、公钥、config、known_hosts),用tar保留权限,还原后chmod加固,并同步终端、钥匙串、Git等关联配置。
mac 备份和迁移 ssh 配置文件,核心是安全、完整、可复用——重点保护 ~/.ssh/ 目录下的私钥、公钥、config 和 known_hosts,同时确保权限不被破坏。不需要重装或重新生成密钥,就能在新机器上一键恢复连接能力。
备份 ~/.ssh 目录(含私钥和 config)
SSH 配置的主体都在用户主目录下的 .ssh 文件夹里,包括:
-
id_rsa或id_ed25519:你的私钥(绝对不能明文上传或共享) -
id_rsa.pub或id_ed25519.pub:对应公钥(可公开) -
config:自定义 Host 别名、端口、用户名、密钥路径等(如Host prod) -
known_hosts:已验证过的远程服务器公钥指纹(决定是否弹出“host key changed”警告)
备份命令(保留权限和隐藏属性):
tar -czf ssh-backup-$(date +%Y%m%d).tar.gz ~/.ssh
执行前请确认:ls -l ~/.ssh 显示私钥权限为 -rw-------(600),目录权限为 drwx------(700)。若不是,先修复:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_*
迁移时还原并验证权限
把 ssh-backup-xxx.tar.gz 拷到新 Mac 后,解压并强制校验权限:
tar -xzf ssh-backup-*.tar.gz -C ~ --strip-components=1
然后立即检查并加固:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_* && chmod 644 ~/.ssh/*.pub && chmod 600 ~/.ssh/config && chmod 644 ~/.ssh/known_hosts
最后测试一条配置是否生效:ssh -T git@github.com 或 ssh your-host-alias。若提示 “Permission denied (publickey)”,大概率是私钥权限不对或 config 中 IdentityFile 路径写错了。
特殊处理:避免 known_hosts 冲突
如果旧服务器重装过系统、IP 变了,或你只是想清理历史记录,不要直接删整个 known_hosts——推荐精准删除:
- 删某个域名:
ssh-keygen -R github.com - 删某个 IP:
ssh-keygen -R 192.168.1.50 - 清空全部(慎用):
rm ~/.ssh/known_hosts
注意:macOS 的 Terminal 本身不会缓存 SSH 密码,但会记住你输过的命令(比如带密码的 ssh user@ip)。如需清理,运行:defaults delete ~/Library/Preferences/com.apple.Terminal.plist PreviousCommands,然后重启 Terminal。
进阶建议:配合开发环境整体迁移
SSH 配置不是孤立的。迁移到新 Mac 时,建议同步处理:
- 终端 shell 配置(
~/.zshrc中可能有export SSH_AUTH_SOCK或别名) - 钥匙串(Keychain)中已保存的 SSH 密码或证书(可在“钥匙串访问”App 中搜索 “ssh” 查看)
- Git 全局设置(
~/.gitconfig中的[user] name/email和[core] sshCommand)
用 rsync 打快照时可一并包含这些文件,例如:
rsync -avh ~/.zshrc ~/.gitconfig ~/.ssh/ ~/Library/Preferences/com.apple.Terminal.plist ./backup-20260925/

















