![](https://www.alaica.com/wp-content/uploads/linux-79.png)
由于我无法/etc/ssh/ssh_host_rsa_key在 Linux / Unix / Apple OS X / *BSD 操作系统下使用为非 root 帐户定义的系统,因此如何创建与我的应用程序一起使用的主机密钥文件?
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | OpenSSH 和 ssh-keygen |
美东时间。阅读时间 | 2分钟 |
您需要使用一个名为 的命令ssh-keygen。此命令生成、管理和转换 ssh 的身份验证密钥。它可以创建供 SSH 协议版本 1 使用的 RSA 密钥和供 SSH 协议版本 2 使用的 RSA 或 DSA 密钥。要生成的密钥类型由选项指定-t。如果在不带任何参数的情况下调用,ssh-keygen 将生成一个 RSA 密钥以在 SSH 协议 2 连接中使用。该-f选项指定密钥文件的文件名。
为什么要创建新的主机密钥文件?
您可能需要一个新的密钥文件:
- 您的系统已受到损害。
- 你的钥匙被偷了。
- 您忘记了密码。
- 您的应用程序需要一个新的主机密钥。
- 您无法读取 /etc/ssh/ 目录中存储的默认系统密钥文件,但您的非 root 应用程序需要密钥。
- 您收到一条错误消息,内容为“无法加载主机密钥:/etc/ssh/ssh_host_key*”。
ssh-keygen 语法
语法是:
ssh-keygen -t 'rsa|dsa|rsa1' -f /路径/到/文件
例子
在 $HOME/.ssh/myapp 中创建一个主机密钥文件,如下所示。首先,创建一个目录来存储主机密钥文件,输入:
$ mkdir -p $HOME/.ssh/myapp
要创建主机 RSAv2 密钥文件,请运行:
$ ssh-keygen -t rsa -f $HOME/.ssh/myapp/rsa_key_file
示例输出:
生成公钥/私钥 rsa 密钥对。 输入密码(没有密码则为空): 再次输入相同的密码: 您的身份信息已保存在 /home/vivek/.ssh/myapp/rsa_key_file 中。 您的公钥已保存在 /home/vivek/.ssh/myapp/rsa_key_file.pub 中。 关键指纹是: 73:d0:e9:0a:5d:a3:3f:78:33:5d:0d:fe:e4:f4:25:39 vivek@wks01 密钥的随机艺术图像是: +--[RSA 2048]----+ | | | 。。| | 。= 。| | 。= 。。+ | | 。S o E =| | 。*。。博| | 哦*。+| | 。+ | | | +-----------------+
键入以下命令来验证密钥:
$ ls -l $HOME/.ssh/myapp/
示例输出:
总计 8 -rw-------- 1 维维克维维克 1675 十月 29 23:12 rsa_key_file -rw-r--r-- 1 维维克 维维克 393 十月 29 23:12 rsa_key_file.pub
您现在可以在您的应用程序中使用密钥:
$ mycool-app -key $HOME/.ssh/myapp/rsa_key_file -d