我想将 ZFS 数据集发送到运行 OpenZFS 的 Mac。我已经能够使用终端将 FreeNAS 数据集复制到运行 OpenZFS 的 Mac。我使用 SSH 密码验证完成了此操作。我想为此设置 FreeNAS(基于 FreeBSD 的 NAS 服务器)复制任务,但由于我没有设置 SSH 密钥,因此我收到权限被拒绝错误。
我尝试在 FreeNAS GUI 中设置复制任务,指向我的远程 Mac 的 IP,然后按下 SSH 密钥扫描按钮,它确实填充了一个密钥。我尝试将该密钥文本保存到文件中,并使用远程ssh-add
Mac 上的命令添加它,但它一直要求输入密码,而我不知道。如果我留空,它只会结束命令(或者可能添加它但我仍然失败)。
我需要采取哪些步骤才能在我的 FreeNAS 服务器和运行 OpenZFS 的远程 Mac 之间使用 SSH 密钥?我在网上找到了有关如何在 FreeNAS 上生成 SSH 密钥的信息,但我不想搞乱我现有的复制任务。也许不会,但我不想冒险在尝试我从未做过的事情时破坏我所有现有的复制。
答案1
如果我理解正确的话,本质上就是想从你的免费 NAS ssh 到 Mac,而不需要输入密码。只需几个步骤就可以做到。
在免费 NAS 上以要执行 ssh 的用户身份执行:
ssh-keygen -t rsa
它会要求输入两次密码,按两次 ENTER。
这将生成两个文件:.ssh/id_rsa(您的私钥)和.ssh/id_rsa.pub(以易于传输的 ASCII 编码的公钥)。
接下来,您必须在 MAC 上创建一个名为 authorized_keys 的文件,该文件位于用户的 .ssh 目录中。将您新创建的 id_rsa.pub 的内容(只有一行)放入 authorized_keys 中;如果 authorized_keys 之前已存在,请附加该行。
为了更清楚,我举个例子。如果你在免费 NAS 上输入
ssh Mac -l replicate_user
您最好以 replicate_user 身份登录 Mac 并创建该 authorized_keys 文件。它应位于 replicate_users 的 .ssh 目录中,而该目录又应位于其主目录中。拥有 .ssh 目录的正确访问权限至关重要;如果它尚不存在,获得正确访问权限的最简单方法是在 Mac 上以 replicate_user 身份键入“ssh-keygen -t rsa”。
这就是使 ssh 登录无需输入密码所需的全部操作。
只要 .ssh 目录中没有 ssh 密钥,创建新密钥不会破坏任何东西,如果会,您可以删除它。只是不要覆盖现有的密钥。如果已经有一个,请使用 .pub 内容填充 Mac 上的 authorized_keys。
这种无需密码登录的方法很好用;但请注意,无论谁拥有你的 id_rsa 文件,他都可以无需密码登录 Mac。
当然,您可以使用 RSA 以外的其他密钥类型;您只需提供一个密钥类型,因此我在此示例中使用了 -t rsa。