如何通过名称引用加载的 SSH 密钥?

如何通过名称引用加载的 SSH 密钥?

我在用着厨师刀 EC2 工具这需要姓名已加载的 SSH 密钥(在 Amazon EC2 控制面板中创建)

我觉得很奇怪它使用了姓名引用密钥对 - 因为该名称是在 ec2 控制面板中创建的:

图片.png http://img843.imageshack.us/img843/4236/pictureiy.png

当我下载文件时,我只是获取文件mykey.pem。它是否以某种方式包含编码的密钥对名称?该密钥对的姓名在命令行中似乎不可见:

$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQE69PeuHFtO[truncated]== /Users/me/mykey.pem

$ ssh-add -l
2048 b4:45:70:23:b1:f3:3b:01:11:23:45:67:89:0a:bc:de /Users/me/mykey.pem (RSA)

问题

  1. 我在某个地方丢失了密钥对“名称”吗?我怎样才能查看这些?
  2. 第三方软件(例如小刀工具)如何根据看不见的密钥对的“名称”知道要使用哪个密钥对?

我希望这些问题有意义——我很乐意详细说明任何灰色地带。

答案1

(长话短说,它使用多雾路段.)

如果我正确理解你的问题,我想它来自 EC2,如下所示:

lib/chef/knife/ec2_server_create.rb了解有关 SSH 密钥名称的信息在这个部分 (def run:

server = connection.servers.create(create_server_def)
# ...
msg_pair("SSH Key", server.key_name)

connection.servers.create可以在 中找到lib/chef/knife/ec2_base.rb我们在哪里找到:

def connection
  @connection ||= begin
    connection = Fog::Compute.new(
      :provider => 'AWS',
      :aws_access_key_id => Chef::Config[:knife][:aws_access_key_id],
      :aws_secret_access_key => Chef::Config[:knife][:aws_secret_access_key],
      :region => locate_config_value(:region)
    )
  end
end

即它使用多雾路段它与 AWS 对话并因此知道如何处理密钥名称......我想(?)

相关内容