0

所以我的理解是,这ssh-keygen是 OpenSSH 提供的众多命令之一。

使用 生成私钥/公钥对ssh-keygen时,我知道您可以将公钥放到远程服务器(内部~/.ssh/authorised_keys)上,它允许您通过 ssh 进入该服务器。

但似乎有两种不同的方式来生成密钥对,从某种意义上说,你可以ssh-keygen单独使用,当你cat使用公钥时,你会看到如下内容:

ssh-rsa XXXX User@ComputerName

在哪里User@ComputerName看起来像M@Marks-MBP.default我。

另一种方法是使用-C评论标志(GitHub 建议这样做)。它似乎不会使用User@ComputerName但您的电子邮件地址代替它的位置(或您碰巧使用的任何“评论”)。

我是否认为对于 SSH 进入服务器,您用于登录的用户名是-C您的公钥中设置的任何评论?

因此,如果我根本不使用-C,那么它最后会生成一个公钥M@Marks-MBP.default。然后我假设用户名是M.

但如果我使用-C "bingbop",那么我假设 SSH 的用户名是bingbop

那是对的吗?

此外,GitHub 是否有任何技术原因建议使用-C来指定您的电子邮件地址而不是关闭该标志?

我猜当您尝试克隆或推送到您的存储库(使用他们的git@github.com:<user>/<repo>.git协议)时,它无法仅通过公钥识别您,它需要将评论设置为您的 GitHub 电子邮件地址

4

2 回答 2

1

该评论仅供参考;它与 Git 已知的用户名无关。当您 ssh 进入 github 时,它会将公钥与存储库中的私钥相匹配,因此仅知道与哪个用户关联。

于 2015-07-09T14:11:47.010 回答
0

我是否认为对于 SSH 进入服务器,您用于登录的用户名是 -C 注释在您的公钥中设置的任何内容?

不。键的评论字段实际上就是:一个(可选)评论,按照惯例,通常设置为您的电子邮件地址,但user@host如果未指定,则默认为。

您通过 SSH 登录时使用的用户名与该评论字段无关或派生自该评论字段。

此外,GitHub 是否有任何技术原因建议使用 -C 来指定您的电子邮件地址而不是关闭该标志?

是的,原因是默认值user@host很少向您提供公钥的人提供有用的信息。另一方面,您的电子邮件地址是更有价值的信息。

我猜当您尝试克隆或推送到您的存储库(使用他们的 git@github.com:/.git 协议)时,它无法仅通过公钥识别您,它需要将注释设置为您的 GitHub 电子邮件地址。

GitHub可以仅通过提供的密钥来识别您,因为它在所有 GitHub 用户中都是唯一的。在您给出的 URI 语法中,git前面的@是提供给 SSH 的用户名。git因此 GitHub为其所有用户使用通用用户名 of ,并且个人用户由他们提供的密钥标识。

于 2015-07-09T14:24:48.357 回答