如何使用 ssh-keygen 生成私钥-公钥并使之获得授权?

如何使用 ssh-keygen 生成私钥-公钥并使之获得授权?

我想在服务器 1 上生成一个公钥-私钥并将其存储在非默认位置。

此后,将公钥保存在服务器 2 上;同样,不要保存在默认位置。

然后将这个密钥设为授权密钥。

但我在文件夹中找不到authorized_keys文件~/.ssh。我该如何授权?

答案1

  1. 跑步ssh-keygen -f filename
  2. 跑步scp filename username@server:filename-on-server
  3. 登录服务器并运行cat filename-on-server >> ~/.ssh/authorized_keys

您也可以用 替换步骤 2 和 3 ssh-copy-id -i filename username@server

答案2

使用ssh-keygen命令。在服务器(您希望 ssh 访问的地方)上,将公钥存储在文件中~/.ssh/authorized_keys。如果您的主目录 (~) 中还没有 .ssh 目录,请创建它(也请注意:出于安全原因,sshd 似乎很挑剔,没有其他用户可以读取该文件/目录,最好在您的 .ssh 目录中发出 chmod 700,并在其中的文件上发出 chmod 600)。

在您想要从其进行 ssh 连接的机器(“客户端”)上,您可以使用私钥通过 ssh 连接到您的服务器。您可以将其存储在任何地方,然后可以使用-issh 开关来提供将要使用的公钥。我写这个是因为您说“不存储在默认位置”。默认位置将是file id_dsa(对于 DSA 密钥)在您的 .ssh 目录中。然后您不需要开关-i来指定您的密钥,因为它会自动从那里选择。

答案3

听起来你已经制作了密钥。如果没有,只需运行 ssh-keygen 并接受默认值。自己制作 authorized_keys 文件:touch authorized_keys

当您将私钥保存在非标准位置时,请确保使用-i:ssh -i /path/to/privatekey user@host

这是一篇关于 ssh-keygen 和使用 authorized_keys 简化 ssh 登录的好文章:

http://www.debuntu.org/secure-your-ssh-server-with-publicprivate-key-authentification/

相关内容