生成 SSH 密钥后我该做什么?

生成 SSH 密钥后我该做什么?

我有 2 台 Linux 机器:家里的 NAS 和场外的服务器。

将我的 NAS 称为“NAS”,将偏移服务器称为“SRV”。

我需要能够安全地将文件从 SRV 复制到 NAS,而无需输入密码。SRV 运行 Ubuntu 14.04,因此我可以运行ssh-keygen。NAS 运行其他版本的 Linux(我不知道是什么。cat /etc/*-release而且lsb-release -a两者都不起作用)。NAS 有ssh-keygen但没有ssh-copy-id,我不想在 NAS 上安装任何其他软件,因为其他人这样做时遇到了问题。

令人困惑的是,我运行后ssh-keygen,机器上生成了 2 个文件。我不确定这些文件是什么,以及我应该分发哪一个。另一件事是,我实际上在哪台机器ssh-keygen上运行?逻辑表明,如果我想从 SRV 登录 NAS,我应该在 SRV 上运行命令,但我读过的内容表明,实际上可能恰恰相反?

以下是我目前所做的:

我已使用希望通过 SSH 连接的用户身份登录 NAS。我已运行ssh-keygen并将 id_rsa.pub 文件复制到~/.ssh/authorized_keysSRV 上。然后我尝试通过 SSH 从 SRV 连接到 NAS,但它要求输入密码。然后我尝试通过 SSH 从 SRV 连接到 NAS,并指定使用的身份文件,ssh user@NAS -i ~/.ssh/authorized_keys/id_rsa.pub但它仍然要求输入密码。

不知道我做错了什么。这似乎是应该这是一个非常简单的过程,所以我显然做错了什么或使用了错误的 SSH 参数。

答案1

您的思路是对的,只是您走反了。

当您执行此操作时,ssh-keygen您将生成一个公钥和私钥对。私钥永远不应离开创建它的设备,而公钥应分发到您想要使用密钥登录的任何服务器。

因此,ssh-keygen应该在 SRV 上运行,并将id_rsa.pub创建的文件复制到~/.ssh/authorized_keysNAS 的主目录中您登录的用户

如果此文件是新创建的(或无论如何),请确保其权限仅限于所有者:

 chmod 600 ~/.ssh/authorized_keys

答案2

我读到的内容是,你做对了一切。如果不起作用,请尝试清除 known_hosts文件,然后生成新的 ssh 密钥并将其添加到authorized_keys。这应该可以解决你的问题。

相关内容