管理多个SSH RSA密钥
时间:2020-01-09 10:42:35 来源:igfitidea点击:
说明
默认情况下,SSH密钥生成通常使用〜/ .ssh / id_rsa作为私钥,而使用〜/ .ssh / id_rsa.pub作为公共密钥作为默认值,因此如何生成多个密钥?创建多个密钥后,如何指定用于特定连接的密钥?
在本教程中,将说明如何生成多个密钥以及如何将它们用于不同的连接。
生成密钥
我们可以阅读CentOS 6上使用RSA身份验证的无密码SSH登录,以获得更深入的教程。尽管该教程是特定于CentOS的,但这些说明将适用于任何OpenSSH客户端。
指定用于SSH的密钥
默认情况下,SSH命令将使用默认的RSA密钥〜/ .ssh / id_rsa。但是,我们可以使用-i参数以及特定私钥的路径来指定密钥。例如,如果私钥名为〜/ .ssh / aws_vpc1,我们可以使用以下命令来指示SSH使用它。
ssh -i ~/.ssh/aws_vpc1 Hyman@localhost
使用此方法的缺点是我们需要记住要使用哪个密钥,在哪里以及针对哪个服务器。
使用SSH配置管理多个密钥
具有多个密钥的更优雅的方法是为SSH创建配置文件。在此文件中,我们可以指定将使用特定密钥的服务器。用服务器及其密钥填充配置文件后,我们可以使用服务器名称简单键入SSH,而不必担心指定密钥。
- 在〜/ .ssh /下创建一个名为config的新文件。
touch ~/.ssh/config
- 其他任何用户都无法访问该文件。将其文件权限更改为我们可以读取/写入,并且对其他任何人均没有权限。
chmod 600 ~/.ssh/config
- 将文件打开到文本编辑器中。在此示例中,我将使用VI。如果我们没有VI或者只是不喜欢使用VI,则可以使用Nano等替代方法。任何文本编辑器都可以。
vi ~/.ssh/config
- 在此示例中,我将添加一个名为WEBNODE01的服务器。默认登录帐户为webops,其私钥为〜/ .ssh / aws_vpc1_id_rsa。
host WEBNODE01 HostName WEBNODE01.my.aws.hostname User webops IdentityFile ~/.ssh/aws_vpc1_id_rsa
host | 服务器的名称或者别名 |
---|---|
HostName | 服务器的DNS主机名或者IP地址 |
User | 登录到服务器的用户 |
IdentityFile | 私钥的文件名和路径 |
- 保存更改并退出文本文件。
- 使用我们在配置文件中指定的"主机"值,无需输入用户或者指定密钥即可连接到服务器。
ssh WEBNODE01