ssh-add和ssh-keygen之间有什么区别



我知道ssh keygen,它可以在~/.ssh中创建一个公钥和私钥,默认情况下为id_rsaid_rsa.pub

例如:

ssh-keygen

稍后,我们将id_rsa.pub添加到服务器的known_hosts中,这样我们就可以进行

ssh user@hostname.com

但我看到我们使用ssh-add来传递私钥,这样我们就可以在不需要密码的情况下登录

例如:

ssh-add <(echo "$SSH_PRIVATE_KEY")

为此,我们需要启动ssh代理

eval $(ssh-agent -s)

然后

ssh user@hostname.com

假设已经存在CCD_ 7。那么,ssh是如何知道它必须使用哪个私钥的呢

ssh,如果它在环境中找到SSH_AUTH_SOCK的值,将向该代理请求所有私钥,并逐一尝试,除非您通过-i命令行选项或IdentitiyFile配置选项告诉它要使用哪个特定密钥。

ssh-agent的主要好处是,它可以在内存中保存未加密的密钥,因此当密钥添加到代理时,您只需要使用一次密钥的密码短语,而不是每次ssh尝试使用密钥时。

(另一个好处是,如果你在一个链中有多个ssh连接,你可以将私钥保存在第一台机器上的代理中。ssh客户端可以将代理连接转发到远程机器,在那里ssh客户端可以访问代理,为链中的下一步使用密钥。)

相关内容

  • 没有找到相关文章

最新更新