【发布时间】:2021-10-05 11:46:18
【问题描述】:
许多关于在 GitHub 上使用 SSH 的教程都假定使用默认的 id_rsa 文件名作为密钥文件。该特定文件名是否有任何特殊意义,或者有什么理由应该使用它而不是特定的东西,例如github_rsa?我承认我对该领域的最佳实践非常模糊,并且我在网络搜索中没有找到任何内容表明为什么使用该特定名称,或者保留该名称是否有任何好处它或使用不同的东西。
【问题讨论】:
许多关于在 GitHub 上使用 SSH 的教程都假定使用默认的 id_rsa 文件名作为密钥文件。该特定文件名是否有任何特殊意义,或者有什么理由应该使用它而不是特定的东西,例如github_rsa?我承认我对该领域的最佳实践非常模糊,并且我在网络搜索中没有找到任何内容表明为什么使用该特定名称,或者保留该名称是否有任何好处它或使用不同的东西。
【问题讨论】:
名称id_rsa 只是 SSH 用于 RSA 密钥的默认文件名。如果您运行ssh-keygen 并接受所有默认值,它将创建文件~/.ssh/id_rsa。
ssh 命令默认会查找此文件,因此使用默认名称可减少使工作正常所需的额外配置量。
您当然可以将其命名为其他名称,然后将 ssh 配置为显式地为 github 使用该密钥。
【讨论】:
id_rsa),还是您会为每个创建一个文件?
authorized_keys 文件可以包含多个(公钥)密钥,但公钥和私钥文件只能包含一个密钥。
要添加到larsks answer,股票ssh-keygen 将创建:
~/.ssh/identity 用于版本 1 RSA~/.ssh/id_dsa 用于第 2 版 DSA(do not use this,因为支持已经消失,而且显然还有一些 SHA-1 问题)~/.ssh/id_ecdsa 用于椭圆曲线 DSA(do not use this one either 以防您的实施不正确)等等。当前的建议是使用带有长密钥(2048 位或更多)或 Ed25519(不太广泛支持)的版本 2 RSA。对现代 RSA 的广泛支持导致假设 ~/.ssh/id_rsa。
【讨论】: