我想了解到底是如何openstack 密钥对创建命令与 ssh-keygen 不同(两者都创建密钥对,对吗?)。另外,当我向 openstack keypair create 命令提供公钥时到底会发生什么?
AFAIK,私钥不能从公钥派生,那么为什么在创建密钥对时可以选择使用已经可用的公钥呢?
答案1
你是对的,两者openstack keypair create
都是ssh-keygen
能(但注意:不一定做)创建一个可由兼容 openssh 的 ssh 服务器理解的密钥对。
它们以不同的方式生成,因为 openstack 客户端是用 Python 编写的,而 openssh 是用 C 编写的。但是,给定密钥对,我不相信有办法判断它是由 openstack 还是 ssh-keygen 生成的。换句话说,虽然你不能说它们“完全相同”,但你也不能说它们在任何有意义的意义上是不同的。
使用时openstack keypair create --public-key <file>
,它假设您希望在云服务提供商内提供公钥,以便注入虚拟机。仅当您已经有权访问私钥时它才有用。如果您已经拥有使用(例如)生成的私钥,ssh-keygen
并且想要使用该密钥通过 ssh 连接到虚拟机,则可以使用此工具。