Linux/Unix ssh-keygen:创建主机密钥文件
时间:2020-01-09 10:40:28 来源:igfitidea点击:
由于无法在Linux/Unix/Apple OS X/* BSD操作系统下为非root帐户使用系统定义的/etc/ssh/ssh_host_rsa_key
,因此如何创建用于我的应用程序的主机密钥文件?
解决方法:
您需要使用一个名为" 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 /path/to/file
例子
如下所示在$HOME/.ssh/myapp中创建一个主机密钥文件。
首先,创建一个目录来存储您的主机密钥文件,执行:
$ mkdir -p $HOME/.ssh/myapp
要创建主机RSAv2密钥文件,请运行:
$ ssh-keygen -t rsa -f $HOME/.ssh/myapp/rsa_key_file
输出示例:
Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/Hyman/.ssh/myapp/rsa_key_file. Your public key has been saved in /home/Hyman/.ssh/myapp/rsa_key_file.pub. The key fingerprint is: 73:d0:e9:0a:5d:a3:3f:78:33:5d:0d:fe:e4:f4:25:39 Hyman@wks01 The key's randomart image is: +--[ RSA 2048]----+ | | | . . | | . = . | | . = . . + | | . S o E =| | . * . . Bo| | o * . +| | . + | | | +-----------------+
执行以下命令来验证密钥:
$ ls -l $HOME/.ssh/myapp/
输出示例:
total 8 -rw------- 1 Hyman Hyman 1675 Oct 29 23:12 rsa_key_file -rw-r--r-- 1 Hyman Hyman 393 Oct 29 23:12 rsa_key_file.pub
现在,您可以在应用程序中使用密钥:
$ mycool-app -key $HOME/.ssh/myapp/rsa_key_file -d