![如何通过名称引用加载的 SSH 密钥?](https://linux22.com/image/21467/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%90%8D%E7%A7%B0%E5%BC%95%E7%94%A8%E5%8A%A0%E8%BD%BD%E7%9A%84%20SSH%20%E5%AF%86%E9%92%A5%EF%BC%9F.png)
我在用着厨师刀 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
(长话短说,它使用多雾路段.)
如果我正确理解你的问题,我想它来自 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 对话并因此知道如何处理密钥名称......我想(?)