我的日常工作涉及 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_keys
,known_hosts
以及公钥和私钥文件,其名称通常是id_(rsa|ed25519)_...[.pub]
/etc/ssh
(或 MacOS 存储该数据的任何位置)包含 SSH 所需的文件守护进程(系统范围的客户端配置除外)。值得注意的是,查找moduli
、ssh_config
和sshd_config
守护进程的关键文件,这些文件的名称通常为ssh_host_(ecdsa|rsa|ed25519)_key[.pub]
。
祝你好运!