![如何使用 ssh-keygen 生成私钥-公钥并使之获得授权?](https://linux22.com/image/1092391/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20ssh-keygen%20%E7%94%9F%E6%88%90%E7%A7%81%E9%92%A5-%E5%85%AC%E9%92%A5%E5%B9%B6%E4%BD%BF%E4%B9%8B%E8%8E%B7%E5%BE%97%E6%8E%88%E6%9D%83%EF%BC%9F.png)
我想在服务器 1 上生成一个公钥-私钥并将其存储在非默认位置。
此后,将公钥保存在服务器 2 上;同样,不要保存在默认位置。
然后将这个密钥设为授权密钥。
但我在文件夹中找不到authorized_keys
文件~/.ssh
。我该如何授权?
答案1
- 跑步
ssh-keygen -f filename
。 - 跑步
scp filename username@server:filename-on-server
- 登录服务器并运行
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 连接到您的服务器。您可以将其存储在任何地方,然后可以使用-i
ssh 开关来提供将要使用的公钥。我写这个是因为您说“不存储在默认位置”。默认位置将是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/