ssh-keygen - 如何使用特定用户名设置RSA密钥

54

我刚安装了 Ubuntu 并想要将其 RSA 密钥设置为 Bitbucket/Github。当我运行 ssh-keygen 命令时,密钥已经按照应有的方式生成。

ssh-rsa AA...yBEz3pLL georgemauer@ubuntu

这个密钥除了用户名部分以外都可以正常使用。在我之前生成的每一个RSA密钥中,用户名部分都是我的电子邮件地址:

ssh-rsa AA...yBEz3pLL gmylastname@gmail.com

不,这不是一个主要障碍,但如果我没搞对,它会让我发疯。那么,我如何使用我选择的电子邮件用户名生成RSA密钥?


我想知道一个声誉如你的人怎么会在这里发布这样的离题言论 ;) - Eugene Mayevski 'Callback
1
@George 泡咖啡也是开发人员非常普遍的活动。 - Eugene Mayevski 'Callback
2
@Eugene 确实,但您认为哪个StackExchange网站更相关?Serverfault?这不是常见的系统管理员活动。程序员?这不是理论上的问题,而是一个如何解决的问题。Superuser?也许吧,但同样地,这对于开发人员来说是一个常见的问题,而对于其他人来说则是相当罕见的。 - George Mauer
对我来说,它看起来像是一个超级用户网站。 - Eugene Mayevski 'Callback
3个回答

51

使用-C选项为您的密钥提供新的注释。


4
谢谢,小写的 -c 可以改变评论。 - George Mauer
我需要大写的C,经过检查后发现这个答案使用了大写的-C。当我运行ssh-keygen -c "user@host"时,我感到困惑。后来我意识到答案使用了大写的-C,当我运行ssh-keygen -C "user@host"时它起作用了。 - undefined

19

说明: 通常情况下,您的ssh公钥中的最后一个字符串将是单个注释,其默认配置为user@host。您可以通过添加-C参数并编辑此字符串来覆盖此注释。

例如 默认行为下,假设您的Linux主机名为Ubuntu,用户名为john.doe,当您查看您的公钥执行cat ~/.ssh/id_rsa.pub时,您会看到类似于以下内容:

ssh-rsa <someReallyBigToken>== john.doe@ubuntu

文档:

ssh-keygen 默认会以 OpenSSH 特定格式写入密钥。 这种格式更受欢迎,因为它提供了更好的密钥保护,并允许在私钥文件本身中存储密钥注释。 密钥注释可能有助于识别密钥。 当创建密钥时,注释初始化为“user@host”,但可以使用 -c 选项进行更改。

解决方案:覆盖此注释并使用 -C 参数进行注释。

ssh-keygen -t rsa -b 4096 -C message-in-a-bottle
cat ~/.ssh/id_rsa.pub

// output:
ssh-rsa <someReallyBigToken>== message-in-a-bottle

14
ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]

我使用这个命令生成SSH密钥,用于生成GitHub、GitLab和GCP。 这里是创建带有用户名的SSH密钥的文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接