管理多个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