我想完全重置我的 Mac,但希望拥有相同的 ssh 密钥,我该怎么做?

我想完全重置我的 Mac,但希望拥有相同的 ssh 密钥,我该怎么做?

我的日常工作涉及 ssh 隧道,因此我想保留相同的 ssh 密钥。问题是,几天前安装 big sur 后,我的 mac 出现了严重问题。我想回到 Catalina 并删除我 mac 上的所有内容。

我想保留 .ssh 文件夹的备份,并在重置/更新后替换它。这样可行吗?如果不行,我该怎么办?

答案1

事实证明它是有效的,如果您想保留相同的密钥并想要重置系统,那么请备份~/.ssh文件夹并将其替换为重置后获得的新文件夹(如果不存在,则在主目录中创建一个名为 .ssh 的新文件夹)。

但粘贴后它不会立即起作用,它会给你一些这样的错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/user/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/user/.ssh/id_rsa": bad permissions

您必须更改此权限,我输入chmod 400 ~/.ssh/id_rsa的是只读权限,如果您想要读写权限,则输入600而不是400。它将开始工作。

答案2

我对 Apple 机器或 MacOS 一无所知,但我知道它们的 SSH 守护程序的工作方式与 OpenSSH 几乎完全相同,所以我会回答你的问题。

您必须考虑同一件事的两个方面:

备份.ssh文件夹是个好主意,而且几乎就足够了。在那个文件夹中,通常有你的SSH 密钥(私钥和公钥)、一个名为的文件authorized_keys(包含允许 ssh 进入你的机器的远程机器/用户的公钥)和一个名为的文件known_hosts(包含允许 ssh 进入你的机器的远程机器的 id)过去曾通过 ssh 进入过)。

这是第一个陷阱。如果您的 MAC 上有多个用户,则可能会有多个.ssh目录(通常每个用户一个),并且您必须备份所有目录。这并不罕见:例如,您可能有一个只允许关闭系统的用户,另一个允许启动备份的用户,以及您自己的用户帐户。您的 UPS 系统可能会以用户身份 ssh 进入您的盒子以shutdown在必要时将其关闭。集中备份管理器可能会以用户身份 ssh 进入您的盒子以backup启动备份 - 您明白了 :-)

另一边是守护进程方面:你确实应该备份 Linux / OpenSSH 中通常是的目录/etc/ssh。这是 SSH 所在的目录守护进程存储其自己的密钥,守护进程的配置文件驻留的位置(通常sshd_config),以及(可能)系统范围的客户端配置文件存在的位置(通常ssh_config)。

但是,我不知道这个目录在 MacOS 中的哪个位置。要找到它,您可以搜索上面提到的文件名,但请确保守护进程的密钥也在其中。它们通常存储在名称以 开头的文件中。保存通常具有该名称的文件ssh_host也是一个好主意。moduli

总之:

.ssh在你的(和其他用户的!)主目录中包含 SSH 所需的文件客户(authorized_keys 除外)。值得注意的是,查找authorized_keysknown_hosts以及公钥和私钥文件,其名称通常是id_(rsa|ed25519)_...[.pub]

/etc/ssh(或 MacOS 存储该数据的任何位置)包含 SSH 所需的文件守护进程(系统范围的客户端配置除外)。值得注意的是,查找modulissh_configsshd_config守护进程的关键文件,这些文件的名称通常为ssh_host_(ecdsa|rsa|ed25519)_key[.pub]

祝你好运!

相关内容